decantr 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +868 -0
- package/CHANGELOG.md +255 -0
- package/CLAUDE.md +178 -0
- package/LICENSE +21 -0
- package/README.md +229 -0
- package/cli/art.js +127 -0
- package/cli/commands/a11y.js +61 -0
- package/cli/commands/audit.js +225 -0
- package/cli/commands/build.js +38 -0
- package/cli/commands/dev.js +18 -0
- package/cli/commands/doctor.js +197 -0
- package/cli/commands/figma-sync.js +48 -0
- package/cli/commands/figma-tokens.js +55 -0
- package/cli/commands/generate.js +26 -0
- package/cli/commands/init.js +116 -0
- package/cli/commands/lint.js +209 -0
- package/cli/commands/mcp.js +530 -0
- package/cli/commands/migrate.js +175 -0
- package/cli/commands/test.js +38 -0
- package/cli/commands/validate.js +354 -0
- package/cli/index.js +113 -0
- package/package.json +95 -0
- package/reference/atoms.md +517 -0
- package/reference/behaviors.md +384 -0
- package/reference/build-tooling.md +275 -0
- package/reference/color-guidelines.md +965 -0
- package/reference/component-lifecycle.md +137 -0
- package/reference/compound-spacing.md +95 -0
- package/reference/decantation-process.md +499 -0
- package/reference/dev-server-routes.md +93 -0
- package/reference/form-system.md +253 -0
- package/reference/i18n.md +336 -0
- package/reference/icons.md +576 -0
- package/reference/llm-primer.md +953 -0
- package/reference/plugins.md +252 -0
- package/reference/registry-consumption.md +76 -0
- package/reference/router.md +217 -0
- package/reference/shells.md +116 -0
- package/reference/spatial-guidelines.md +541 -0
- package/reference/ssr.md +234 -0
- package/reference/state-data.md +215 -0
- package/reference/state-patterns.md +166 -0
- package/reference/state.md +194 -0
- package/reference/style-system.md +110 -0
- package/reference/tokens.md +460 -0
- package/src/app.js +19 -0
- package/src/chart/_animate.js +266 -0
- package/src/chart/_base.js +109 -0
- package/src/chart/_data.js +209 -0
- package/src/chart/_format.js +106 -0
- package/src/chart/_interact.js +364 -0
- package/src/chart/_palette.js +105 -0
- package/src/chart/_renderer.js +52 -0
- package/src/chart/_scene.js +262 -0
- package/src/chart/_shared.js +371 -0
- package/src/chart/index.js +637 -0
- package/src/chart/layouts/_layout-base.js +328 -0
- package/src/chart/layouts/cartesian.js +148 -0
- package/src/chart/layouts/hierarchy.js +562 -0
- package/src/chart/layouts/polar.js +101 -0
- package/src/chart/renderers/canvas.js +179 -0
- package/src/chart/renderers/svg.js +256 -0
- package/src/chart/renderers/webgpu.js +715 -0
- package/src/chart/types/_type-base.js +26 -0
- package/src/chart/types/area.js +134 -0
- package/src/chart/types/bar.js +173 -0
- package/src/chart/types/box-plot.js +125 -0
- package/src/chart/types/bubble.js +63 -0
- package/src/chart/types/candlestick.js +115 -0
- package/src/chart/types/chord.js +85 -0
- package/src/chart/types/combination.js +108 -0
- package/src/chart/types/funnel.js +68 -0
- package/src/chart/types/gauge.js +163 -0
- package/src/chart/types/heatmap.js +98 -0
- package/src/chart/types/histogram.js +71 -0
- package/src/chart/types/line.js +111 -0
- package/src/chart/types/org-chart.js +93 -0
- package/src/chart/types/pie.js +81 -0
- package/src/chart/types/radar.js +96 -0
- package/src/chart/types/radial.js +68 -0
- package/src/chart/types/range-area.js +55 -0
- package/src/chart/types/range-bar.js +61 -0
- package/src/chart/types/sankey.js +73 -0
- package/src/chart/types/scatter.js +66 -0
- package/src/chart/types/sparkline.js +81 -0
- package/src/chart/types/sunburst.js +69 -0
- package/src/chart/types/swimlane.js +88 -0
- package/src/chart/types/treemap.js +62 -0
- package/src/chart/types/waterfall.js +100 -0
- package/src/components/_base.js +1658 -0
- package/src/components/_behaviors.js +1140 -0
- package/src/components/_primitives.js +534 -0
- package/src/components/_qr-encoder.js +539 -0
- package/src/components/accordion.js +207 -0
- package/src/components/affix.js +62 -0
- package/src/components/alert-dialog.js +75 -0
- package/src/components/alert.js +47 -0
- package/src/components/aspect-ratio.js +24 -0
- package/src/components/avatar-group.js +55 -0
- package/src/components/avatar.js +38 -0
- package/src/components/back-top.js +75 -0
- package/src/components/badge.js +74 -0
- package/src/components/banner.js +68 -0
- package/src/components/breadcrumb.js +162 -0
- package/src/components/button.js +115 -0
- package/src/components/calendar.js +131 -0
- package/src/components/card.js +192 -0
- package/src/components/carousel.js +98 -0
- package/src/components/cascader.js +261 -0
- package/src/components/checkbox.js +80 -0
- package/src/components/chip.js +81 -0
- package/src/components/code-block.js +82 -0
- package/src/components/collapsible.js +50 -0
- package/src/components/color-palette.js +438 -0
- package/src/components/color-picker.js +314 -0
- package/src/components/combobox.js +181 -0
- package/src/components/command.js +174 -0
- package/src/components/comment.js +206 -0
- package/src/components/context-menu.js +76 -0
- package/src/components/data-table.js +724 -0
- package/src/components/date-picker.js +217 -0
- package/src/components/date-range-picker.js +244 -0
- package/src/components/datetime-picker.js +271 -0
- package/src/components/descriptions.js +68 -0
- package/src/components/drawer.js +179 -0
- package/src/components/dropdown.js +88 -0
- package/src/components/empty.js +41 -0
- package/src/components/float-button.js +90 -0
- package/src/components/form.js +106 -0
- package/src/components/hover-card.js +49 -0
- package/src/components/icon.js +87 -0
- package/src/components/image.js +97 -0
- package/src/components/index.js +117 -0
- package/src/components/input-group.js +75 -0
- package/src/components/input-number.js +155 -0
- package/src/components/input-otp.js +178 -0
- package/src/components/input.js +91 -0
- package/src/components/kbd.js +36 -0
- package/src/components/label.js +25 -0
- package/src/components/list.js +118 -0
- package/src/components/masked-input.js +236 -0
- package/src/components/mentions.js +165 -0
- package/src/components/menu.js +259 -0
- package/src/components/message.js +80 -0
- package/src/components/modal.js +147 -0
- package/src/components/navigation-menu.js +166 -0
- package/src/components/notification.js +84 -0
- package/src/components/pagination.js +104 -0
- package/src/components/placeholder.js +132 -0
- package/src/components/popconfirm.js +70 -0
- package/src/components/popover.js +58 -0
- package/src/components/progress.js +61 -0
- package/src/components/qrcode.js +251 -0
- package/src/components/radiogroup.js +120 -0
- package/src/components/range-slider.js +176 -0
- package/src/components/rate.js +186 -0
- package/src/components/resizable.js +83 -0
- package/src/components/result.js +57 -0
- package/src/components/scroll-area.js +43 -0
- package/src/components/segmented.js +97 -0
- package/src/components/select.js +165 -0
- package/src/components/separator.js +31 -0
- package/src/components/shell.js +407 -0
- package/src/components/skeleton.js +39 -0
- package/src/components/slider.js +141 -0
- package/src/components/sortable-list.js +176 -0
- package/src/components/space.js +42 -0
- package/src/components/spinner.js +112 -0
- package/src/components/splitter.js +147 -0
- package/src/components/statistic.js +136 -0
- package/src/components/steps.js +99 -0
- package/src/components/switch.js +95 -0
- package/src/components/table.js +44 -0
- package/src/components/tabs.js +216 -0
- package/src/components/tag.js +115 -0
- package/src/components/textarea.js +82 -0
- package/src/components/time-picker.js +153 -0
- package/src/components/time-range-picker.js +170 -0
- package/src/components/timeline.js +226 -0
- package/src/components/toast.js +71 -0
- package/src/components/toggle.js +213 -0
- package/src/components/tooltip.js +57 -0
- package/src/components/tour.js +159 -0
- package/src/components/transfer.js +163 -0
- package/src/components/tree-select.js +274 -0
- package/src/components/tree.js +141 -0
- package/src/components/typography.js +136 -0
- package/src/components/upload.js +118 -0
- package/src/components/visually-hidden.js +20 -0
- package/src/components/watermark.js +124 -0
- package/src/core/index.js +539 -0
- package/src/core/lifecycle.js +69 -0
- package/src/css/atoms.js +651 -0
- package/src/css/components.js +940 -0
- package/src/css/derive.js +1296 -0
- package/src/css/index.js +265 -0
- package/src/css/runtime.js +268 -0
- package/src/css/styles/addons/bioluminescent.js +93 -0
- package/src/css/styles/addons/clay.js +70 -0
- package/src/css/styles/addons/clean.js +57 -0
- package/src/css/styles/addons/command-center.js +143 -0
- package/src/css/styles/addons/dopamine.js +83 -0
- package/src/css/styles/addons/editorial.js +80 -0
- package/src/css/styles/addons/glassmorphism.js +99 -0
- package/src/css/styles/addons/liquid-glass.js +105 -0
- package/src/css/styles/addons/prismatic.js +100 -0
- package/src/css/styles/addons/retro.js +63 -0
- package/src/css/styles/auradecantism.js +96 -0
- package/src/css/theme-registry.js +444 -0
- package/src/data/entity.js +281 -0
- package/src/data/index.js +13 -0
- package/src/data/persist.js +225 -0
- package/src/data/query.js +839 -0
- package/src/data/realtime.js +299 -0
- package/src/data/url.js +177 -0
- package/src/data/worker.js +134 -0
- package/src/explorer/archetypes.js +243 -0
- package/src/explorer/atoms.js +228 -0
- package/src/explorer/charts.js +497 -0
- package/src/explorer/components.js +129 -0
- package/src/explorer/foundations.js +949 -0
- package/src/explorer/icons.js +178 -0
- package/src/explorer/patterns.js +247 -0
- package/src/explorer/recipes.js +194 -0
- package/src/explorer/shared/pattern-examples.js +1337 -0
- package/src/explorer/shared/showcase-renderer.js +958 -0
- package/src/explorer/shared/spec-table.js +41 -0
- package/src/explorer/shared/usage-links.js +87 -0
- package/src/explorer/shell-config.js +10 -0
- package/src/explorer/shells.js +551 -0
- package/src/explorer/styles.js +161 -0
- package/src/explorer/tokens.js +262 -0
- package/src/explorer/tools.js +525 -0
- package/src/form/index.js +804 -0
- package/src/i18n/index.js +251 -0
- package/src/icons/essential.js +479 -0
- package/src/icons/index.js +53 -0
- package/src/plugins/index.js +282 -0
- package/src/registry/archetypes/content-site.json +71 -0
- package/src/registry/archetypes/docs-explorer.json +23 -0
- package/src/registry/archetypes/ecommerce.json +104 -0
- package/src/registry/archetypes/financial-dashboard.json +77 -0
- package/src/registry/archetypes/index.json +41 -0
- package/src/registry/archetypes/portfolio.json +82 -0
- package/src/registry/archetypes/recipe-community.json +159 -0
- package/src/registry/archetypes/saas-dashboard.json +86 -0
- package/src/registry/architect/cross-cutting.json +45 -0
- package/src/registry/architect/domains/ecommerce.json +294 -0
- package/src/registry/architect/domains/financial-services.json +302 -0
- package/src/registry/architect/index.json +26 -0
- package/src/registry/architect/traits.json +379 -0
- package/src/registry/atoms.json +16 -0
- package/src/registry/chart-showcase.json +160 -0
- package/src/registry/chart.json +136 -0
- package/src/registry/components.json +8616 -0
- package/src/registry/core.json +216 -0
- package/src/registry/css.json +319 -0
- package/src/registry/data.json +135 -0
- package/src/registry/foundations.json +11 -0
- package/src/registry/icons.json +463 -0
- package/src/registry/index.json +101 -0
- package/src/registry/patterns/activity-feed.json +37 -0
- package/src/registry/patterns/article-content.json +27 -0
- package/src/registry/patterns/auth-form.json +37 -0
- package/src/registry/patterns/author-card.json +20 -0
- package/src/registry/patterns/card-grid.json +127 -0
- package/src/registry/patterns/category-nav.json +26 -0
- package/src/registry/patterns/chart-grid.json +36 -0
- package/src/registry/patterns/chat-interface.json +37 -0
- package/src/registry/patterns/checklist-card.json +55 -0
- package/src/registry/patterns/comparison-panel.json +27 -0
- package/src/registry/patterns/component-showcase.json +24 -0
- package/src/registry/patterns/contact-form.json +31 -0
- package/src/registry/patterns/cta-section.json +20 -0
- package/src/registry/patterns/data-table.json +37 -0
- package/src/registry/patterns/detail-header.json +83 -0
- package/src/registry/patterns/detail-panel.json +27 -0
- package/src/registry/patterns/explorer-shell.json +22 -0
- package/src/registry/patterns/filter-bar.json +33 -0
- package/src/registry/patterns/filter-sidebar.json +27 -0
- package/src/registry/patterns/form-sections.json +110 -0
- package/src/registry/patterns/goal-tracker.json +27 -0
- package/src/registry/patterns/hero.json +107 -0
- package/src/registry/patterns/index.json +47 -0
- package/src/registry/patterns/kpi-grid.json +36 -0
- package/src/registry/patterns/media-gallery.json +20 -0
- package/src/registry/patterns/order-history.json +20 -0
- package/src/registry/patterns/pagination.json +19 -0
- package/src/registry/patterns/photo-to-recipe.json +36 -0
- package/src/registry/patterns/pipeline-tracker.json +28 -0
- package/src/registry/patterns/post-list.json +27 -0
- package/src/registry/patterns/pricing-table.json +32 -0
- package/src/registry/patterns/scorecard.json +28 -0
- package/src/registry/patterns/search-bar.json +20 -0
- package/src/registry/patterns/specimen-grid.json +19 -0
- package/src/registry/patterns/stat-card.json +55 -0
- package/src/registry/patterns/stats-bar.json +55 -0
- package/src/registry/patterns/steps-card.json +55 -0
- package/src/registry/patterns/table-of-contents.json +19 -0
- package/src/registry/patterns/testimonials.json +21 -0
- package/src/registry/patterns/timeline.json +27 -0
- package/src/registry/patterns/token-inspector.json +21 -0
- package/src/registry/patterns/wizard.json +27 -0
- package/src/registry/recipe-auradecantism.json +69 -0
- package/src/registry/recipe-clean.json +65 -0
- package/src/registry/recipe-command-center.json +78 -0
- package/src/registry/router.json +73 -0
- package/src/registry/schema/README.md +197 -0
- package/src/registry/skeletons.json +259 -0
- package/src/registry/state.json +137 -0
- package/src/registry/tokens.json +40 -0
- package/src/router/hash.js +17 -0
- package/src/router/history.js +18 -0
- package/src/router/index.js +598 -0
- package/src/ssr/index.js +922 -0
- package/src/state/arrays.js +181 -0
- package/src/state/devtools.js +647 -0
- package/src/state/index.js +498 -0
- package/src/state/middleware.js +288 -0
- package/src/state/scheduler.js +206 -0
- package/src/state/store.js +300 -0
- package/src/tags/index.js +19 -0
- package/src/tannins/auth.js +396 -0
- package/src/test/dom.js +352 -0
- package/src/test/index.js +62 -0
- package/src/test/state.js +306 -0
- package/tools/a11y-audit.js +487 -0
- package/tools/analyzer.js +315 -0
- package/tools/audit.js +706 -0
- package/tools/builder.js +1422 -0
- package/tools/css-extract.js +188 -0
- package/tools/dev-server.js +316 -0
- package/tools/dts-gen.js +1260 -0
- package/tools/figma-components.js +329 -0
- package/tools/figma-patterns.js +516 -0
- package/tools/figma-plugin/code.js +453 -0
- package/tools/figma-plugin/manifest.json +14 -0
- package/tools/figma-plugin/ui.html +268 -0
- package/tools/figma-render.js +293 -0
- package/tools/figma-tokens.js +712 -0
- package/tools/figma-upload.js +318 -0
- package/tools/generate.js +738 -0
- package/tools/icons.js +133 -0
- package/tools/init-templates.js +265 -0
- package/tools/install-hooks.sh +5 -0
- package/tools/migrations/0.5.0.js +53 -0
- package/tools/migrations/0.6.0.js +95 -0
- package/tools/minify.js +170 -0
- package/tools/pre-commit +4 -0
- package/tools/registry.js +662 -0
- package/tools/reset-playground.js +61 -0
- package/tools/starter-templates/content-site/app.js +49 -0
- package/tools/starter-templates/content-site/essence.js +19 -0
- package/tools/starter-templates/content-site/pages.js +31 -0
- package/tools/starter-templates/ecommerce/app.js +50 -0
- package/tools/starter-templates/ecommerce/essence.js +19 -0
- package/tools/starter-templates/ecommerce/pages.js +31 -0
- package/tools/starter-templates/landing-page/app.js +38 -0
- package/tools/starter-templates/landing-page/essence.js +18 -0
- package/tools/starter-templates/landing-page/pages.js +21 -0
- package/tools/starter-templates/portfolio/app.js +45 -0
- package/tools/starter-templates/portfolio/essence.js +19 -0
- package/tools/starter-templates/portfolio/pages.js +33 -0
- package/tools/starter-templates/saas-dashboard/app.js +70 -0
- package/tools/starter-templates/saas-dashboard/essence.js +19 -0
- package/tools/starter-templates/saas-dashboard/pages.js +31 -0
- package/tools/verify-pack.js +203 -0
- package/types/chart.d.ts +77 -0
- package/types/components.d.ts +587 -0
- package/types/core.d.ts +89 -0
- package/types/css.d.ts +149 -0
- package/types/data.d.ts +238 -0
- package/types/form.d.ts +164 -0
- package/types/i18n.d.ts +51 -0
- package/types/icons.d.ts +27 -0
- package/types/index.d.ts +13 -0
- package/types/router.d.ts +116 -0
- package/types/ssr.d.ts +102 -0
- package/types/state.d.ts +83 -0
- package/types/tags.d.ts +62 -0
- package/types/tannins.d.ts +63 -0
- package/types/test.d.ts +48 -0
|
@@ -0,0 +1,1658 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base structural CSS for ALL Decantr components (~75 components).
|
|
3
|
+
* Injected once on first component render.
|
|
4
|
+
* Visual styling (colors, shadows, gradients) comes from active theme (src/css/themes/).
|
|
5
|
+
* This file handles STRUCTURE ONLY: layout, sizing, spacing, typography, transitions.
|
|
6
|
+
*
|
|
7
|
+
* Naming: .d-{component} root, .d-{component}-{variant|part|state} for sub-parts.
|
|
8
|
+
* All sizing uses design tokens: var(--d-*) with fallbacks.
|
|
9
|
+
*/
|
|
10
|
+
import { createEffect } from '../state/index.js';
|
|
11
|
+
|
|
12
|
+
let injected = false;
|
|
13
|
+
|
|
14
|
+
const BASE_CSS = [
|
|
15
|
+
// ═══════════════════════════════════════════════════════════════
|
|
16
|
+
// UTILITIES
|
|
17
|
+
// ═══════════════════════════════════════════════════════════════
|
|
18
|
+
'.d-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}',
|
|
19
|
+
// Field sizing utility — override density tokens locally so child form elements inherit the tier
|
|
20
|
+
'.d-field-xs{--d-density-min-h:var(--d-field-h-xs);--d-density-pad-y:var(--d-field-py-xs);--d-density-pad-x:var(--d-field-px-xs);--d-density-text:var(--d-field-text-xs);--d-density-gap:var(--d-field-gap-xs)}',
|
|
21
|
+
'.d-field-sm{--d-density-min-h:var(--d-field-h-sm);--d-density-pad-y:var(--d-field-py-sm);--d-density-pad-x:var(--d-field-px-sm);--d-density-text:var(--d-field-text-sm);--d-density-gap:var(--d-field-gap-sm)}',
|
|
22
|
+
'.d-field-lg{--d-density-min-h:var(--d-field-h-lg);--d-density-pad-y:var(--d-field-py-lg);--d-density-pad-x:var(--d-field-px-lg);--d-density-text:var(--d-field-text-lg);--d-density-gap:var(--d-field-gap-lg)}',
|
|
23
|
+
// Field visual base — border, background, transitions, states
|
|
24
|
+
'.d-field{background:var(--d-field-bg);border:var(--d-group-border,var(--d-field-border-width)) var(--d-border-style) var(--d-field-border);border-radius:var(--d-group-radius,var(--d-field-radius));transition:border-color var(--d-duration-fast) var(--d-easing-standard),box-shadow var(--d-duration-fast) var(--d-easing-standard),background var(--d-duration-fast) var(--d-easing-standard);color:var(--d-fg)}',
|
|
25
|
+
'.d-field:hover:not(:disabled,[aria-disabled],[data-disabled]){border-color:var(--d-field-border-hover);background:var(--d-field-bg-hover)}',
|
|
26
|
+
'.d-field:focus-within:not(:disabled,[aria-disabled],[data-disabled]){border-color:var(--d-field-border-focus);box-shadow:var(--d-group-shadow,var(--d-field-ring))}',
|
|
27
|
+
'.d-field[data-error]{border-color:var(--d-field-border-error);background:var(--d-field-bg-error)}',
|
|
28
|
+
'.d-field[data-error]:focus-within{box-shadow:var(--d-field-ring-error)}',
|
|
29
|
+
'.d-field[data-success]{border-color:var(--d-field-border-success);background:var(--d-field-bg-success)}',
|
|
30
|
+
'.d-field[data-success]:focus-within{box-shadow:var(--d-field-ring-success)}',
|
|
31
|
+
'.d-field[aria-disabled],.d-field[data-disabled]{opacity:var(--d-disabled-opacity);background:var(--d-field-bg-disabled);border-color:var(--d-field-border-disabled);cursor:not-allowed}',
|
|
32
|
+
'.d-field[readonly]{background:var(--d-field-bg-readonly)}',
|
|
33
|
+
'.d-field::placeholder{color:var(--d-field-placeholder)}',
|
|
34
|
+
// Field variant modifiers
|
|
35
|
+
'.d-field-outlined{/* default — inherits .d-field as-is */}',
|
|
36
|
+
'.d-field-filled{--d-field-bg:var(--d-surface-1);--d-field-border:transparent;--d-field-border-hover:transparent}',
|
|
37
|
+
'.d-field-ghost{--d-field-bg:transparent;--d-field-border:transparent;--d-field-border-hover:transparent}',
|
|
38
|
+
'.d-field-ghost:focus-within{--d-field-border:var(--d-field-border-focus)}',
|
|
39
|
+
'button,input,select,textarea{color:inherit}',
|
|
40
|
+
'.d-i{display:inline-block;vertical-align:middle;background:currentColor;mask-size:contain;-webkit-mask-size:contain;mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;mask-position:center;-webkit-mask-position:center;flex-shrink:0}',
|
|
41
|
+
'@keyframes d-spin{to{transform:rotate(360deg)}}',
|
|
42
|
+
'@keyframes d-shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}',
|
|
43
|
+
'@keyframes d-fadein{from{opacity:0}to{opacity:1}}',
|
|
44
|
+
'@keyframes d-fadeout{from{opacity:1}to{opacity:0}}',
|
|
45
|
+
'@keyframes d-slidein-b{from{opacity:0;transform:translateY(var(--d-slide-distance))}to{opacity:1;transform:translateY(0)}}',
|
|
46
|
+
'@keyframes d-slidein-t{from{opacity:0;transform:translateY(calc(var(--d-slide-distance) * -1))}to{opacity:1;transform:translateY(0)}}',
|
|
47
|
+
'@keyframes d-slidein-l{from{opacity:0;transform:translateX(calc(var(--d-slide-distance) * -1))}to{opacity:1;transform:translateX(0)}}',
|
|
48
|
+
'@keyframes d-slidein-r{from{opacity:0;transform:translateX(var(--d-slide-distance))}to{opacity:1;transform:translateX(0)}}',
|
|
49
|
+
'@keyframes d-scalein{from{opacity:0;transform:scale(0.95)}to{opacity:1;transform:scale(1)}}',
|
|
50
|
+
'@keyframes d-pulse{0%,100%{opacity:1}50%{opacity:0.5}}',
|
|
51
|
+
'@keyframes d-bounce{0%,100%{transform:translateY(-25%);animation-timing-function:cubic-bezier(0.8,0,1,1)}50%{transform:translateY(0);animation-timing-function:cubic-bezier(0,0,0.2,1)}}',
|
|
52
|
+
|
|
53
|
+
// ═══════════════════════════════════════════════════════════════
|
|
54
|
+
// BUTTON
|
|
55
|
+
// ═══════════════════════════════════════════════════════════════
|
|
56
|
+
'.d-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--d-density-gap,var(--d-sp-2));font-family:inherit;font-size:var(--d-density-text,var(--d-text-base));font-weight:var(--d-fw-medium,500);line-height:var(--d-lh-none);padding:var(--d-density-pad-y,var(--d-sp-2)) var(--d-density-pad-x,var(--d-sp-4));min-height:var(--d-density-min-h,auto);cursor:pointer;user-select:none;white-space:nowrap;outline:none;text-decoration:none;border:none;background:none}',
|
|
57
|
+
'.d-btn:focus-visible{outline:var(--d-focus-ring-width) var(--d-focus-ring-style,solid) var(--d-focus-ring-color,var(--d-ring));outline-offset:var(--d-focus-ring-offset)}',
|
|
58
|
+
'.d-btn[disabled]{cursor:not-allowed;pointer-events:none;opacity:var(--d-disabled-opacity)}',
|
|
59
|
+
'.d-btn-xs{min-height:var(--d-field-h-xs);font-size:var(--d-field-text-xs);padding:var(--d-field-py-xs) var(--d-field-px-xs);gap:var(--d-field-gap-xs)}',
|
|
60
|
+
'.d-btn-sm{min-height:var(--d-field-h-sm);font-size:var(--d-field-text-sm);padding:var(--d-field-py-sm) var(--d-field-px-sm);gap:var(--d-field-gap-sm)}',
|
|
61
|
+
'.d-btn-lg{min-height:var(--d-field-h-lg);font-size:var(--d-field-text-lg);padding:var(--d-field-py-lg) var(--d-field-px-lg);gap:var(--d-field-gap-lg)}',
|
|
62
|
+
'.d-btn-icon{padding:var(--d-sp-2);aspect-ratio:1}',
|
|
63
|
+
'.d-btn-icon-xs{min-height:var(--d-field-h-xs);padding:var(--d-field-py-xs);aspect-ratio:1;font-size:var(--d-field-text-xs)}',
|
|
64
|
+
'.d-btn-icon-sm{min-height:var(--d-field-h-sm);padding:var(--d-field-py-sm);aspect-ratio:1;font-size:var(--d-field-text-sm)}',
|
|
65
|
+
'.d-btn-icon-lg{min-height:var(--d-field-h-lg);padding:var(--d-field-py-lg);aspect-ratio:1;font-size:var(--d-field-text-lg)}',
|
|
66
|
+
'.d-btn-block{display:flex;width:100%}',
|
|
67
|
+
'.d-btn-rounded{border-radius:var(--d-radius-full)}',
|
|
68
|
+
'.d-btn-group{display:inline-flex;gap:var(--d-density-gap,0)}',
|
|
69
|
+
'.d-btn-group>.d-btn{border-radius:0}',
|
|
70
|
+
'.d-btn-group>.d-btn:first-child{border-top-left-radius:var(--d-radius);border-bottom-left-radius:var(--d-radius)}',
|
|
71
|
+
'.d-btn-group>.d-btn:last-child{border-top-right-radius:var(--d-radius);border-bottom-right-radius:var(--d-radius)}',
|
|
72
|
+
'.d-btn-group>.d-btn:not(:first-child){margin-left:-1px}',
|
|
73
|
+
'.d-btn-loading{position:relative;cursor:wait;color:transparent !important}',
|
|
74
|
+
'.d-btn-loading>*:not(.d-btn-spinner){visibility:hidden}',
|
|
75
|
+
'.d-btn-spinner{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}',
|
|
76
|
+
|
|
77
|
+
// ═══════════════════════════════════════════════════════════════
|
|
78
|
+
// TOGGLE / TOGGLE GROUP
|
|
79
|
+
// ═══════════════════════════════════════════════════════════════
|
|
80
|
+
'.d-toggle{display:inline-flex;align-items:center;justify-content:center;gap:var(--d-density-gap,var(--d-sp-2));padding:var(--d-density-pad-y,var(--d-sp-2)) var(--d-density-pad-x,var(--d-sp-3));font:inherit;font-size:var(--d-density-text,var(--d-text-base));min-height:var(--d-density-min-h,auto);cursor:pointer;border:none;background:none;outline:none}',
|
|
81
|
+
'.d-toggle:focus-visible{outline:var(--d-focus-ring-width) var(--d-focus-ring-style,solid) var(--d-focus-ring-color,var(--d-ring));outline-offset:var(--d-focus-ring-offset)}',
|
|
82
|
+
'.d-toggle[disabled]{cursor:not-allowed;opacity:var(--d-disabled-opacity)}',
|
|
83
|
+
'.d-toggle[aria-pressed="true"]{font-weight:var(--d-fw-medium,500)}',
|
|
84
|
+
'.d-toggle-xs{min-height:var(--d-field-h-xs);font-size:var(--d-field-text-xs);padding:var(--d-field-py-xs) var(--d-field-px-xs)}',
|
|
85
|
+
'.d-toggle-sm{min-height:var(--d-field-h-sm);font-size:var(--d-field-text-sm);padding:var(--d-field-py-sm) var(--d-field-px-sm)}',
|
|
86
|
+
'.d-toggle-lg{min-height:var(--d-field-h-lg);font-size:var(--d-field-text-lg);padding:var(--d-field-py-lg) var(--d-field-px-lg)}',
|
|
87
|
+
'.d-toggle-group{display:inline-flex;position:relative;padding:var(--d-sp-0-5);gap:var(--d-density-gap,var(--d-sp-0-5));border-radius:var(--d-radius-panel);overflow:hidden}',
|
|
88
|
+
'.d-toggle-group>.d-toggle{position:relative;z-index:1;border-radius:var(--d-radius-inner)}',
|
|
89
|
+
'.d-toggle-indicator{position:absolute;top:var(--d-sp-0-5);bottom:var(--d-sp-0-5);border-radius:var(--d-radius-inner);transition:transform var(--d-duration-fast) var(--d-easing-standard),width var(--d-duration-fast) var(--d-easing-standard),opacity var(--d-duration-fast) var(--d-easing-standard);pointer-events:none;z-index:0}',
|
|
90
|
+
'.d-toggle-group-sm{padding:var(--d-sp-0-25);gap:var(--d-sp-0-25)}',
|
|
91
|
+
'.d-toggle-group-sm>.d-toggle{min-height:var(--d-field-h-sm);font-size:var(--d-field-text-sm);padding:var(--d-field-py-sm) var(--d-field-px-sm)}',
|
|
92
|
+
'.d-toggle-group-lg{padding:var(--d-sp-1);gap:var(--d-sp-0-5)}',
|
|
93
|
+
'.d-toggle-group-lg>.d-toggle{min-height:var(--d-field-h-lg);font-size:var(--d-field-text-lg);padding:var(--d-field-py-lg) var(--d-field-px-lg)}',
|
|
94
|
+
'.d-toggle-group-block{display:flex;width:100%}',
|
|
95
|
+
'.d-toggle-group-block>.d-toggle{flex:1}',
|
|
96
|
+
'.d-toggle-group[data-disabled]{opacity:var(--d-disabled-opacity);cursor:not-allowed;pointer-events:none}',
|
|
97
|
+
|
|
98
|
+
// ═══════════════════════════════════════════════════════════════
|
|
99
|
+
// SPINNER
|
|
100
|
+
// ═══════════════════════════════════════════════════════════════
|
|
101
|
+
// ── CARET (shared icon-based arrow for dropdowns, accordions, trees) ──
|
|
102
|
+
'.d-caret{transition:transform var(--d-duration-fast,150ms) var(--d-easing-standard,ease);flex-shrink:0;display:inline-flex;align-items:center}',
|
|
103
|
+
'.d-caret-open{transform:rotate(180deg)}',
|
|
104
|
+
'.d-caret-open-90{transform:rotate(90deg)}',
|
|
105
|
+
// Unified chevron rotation — any component toggles *-open on its wrapper
|
|
106
|
+
'.d-select-open .d-caret,.d-combobox-open .d-caret,.d-cascader-open > .d-cascader-trigger .d-caret,.d-treeselect-open > .d-treeselect-trigger .d-caret{transform:rotate(180deg)}',
|
|
107
|
+
|
|
108
|
+
'.d-spinner{display:inline-block}',
|
|
109
|
+
'.d-spinner-xs{width:var(--d-spinner-size-xs);height:var(--d-spinner-size-xs)}',
|
|
110
|
+
'.d-spinner-sm{width:var(--d-spinner-size-sm);height:var(--d-spinner-size-sm)}',
|
|
111
|
+
'.d-spinner-lg{width:var(--d-spinner-size-lg);height:var(--d-spinner-size-lg)}',
|
|
112
|
+
'.d-spinner-xl{width:var(--d-spinner-size-xl);height:var(--d-spinner-size-xl)}',
|
|
113
|
+
'.d-spinner-arc{animation:d-spin var(--d-duration-spin) linear infinite;transform-origin:center;transform-box:fill-box}',
|
|
114
|
+
'.d-spinner-wrap{display:inline-flex;align-items:center;justify-content:center;width:var(--d-spinner-size);height:var(--d-spinner-size)}',
|
|
115
|
+
// ── Spinner variants ──
|
|
116
|
+
'@keyframes d-dots{0%,80%,100%{transform:scale(0)}40%{transform:scale(1)}}',
|
|
117
|
+
'@keyframes d-bars{0%,100%{transform:scaleY(0.4)}20%{transform:scaleY(1)}}',
|
|
118
|
+
'@keyframes d-orbit{0%{transform:rotate(0deg) translateX(150%) rotate(0deg)}100%{transform:rotate(360deg) translateX(150%) rotate(-360deg)}}',
|
|
119
|
+
'.d-spinner-dots{display:inline-flex;align-items:center;gap:var(--d-sp-1)}',
|
|
120
|
+
'.d-spinner-dots>span{width:25%;aspect-ratio:1;border-radius:50%;background:currentColor;animation:d-dots calc(var(--d-duration-spin) * 1.6) ease-in-out infinite}',
|
|
121
|
+
'.d-spinner-dots>span:nth-child(2){animation-delay:0.16s}',
|
|
122
|
+
'.d-spinner-dots>span:nth-child(3){animation-delay:0.32s}',
|
|
123
|
+
'.d-spinner-pulse{display:inline-flex;align-items:center;justify-content:center}',
|
|
124
|
+
'.d-spinner-pulse>span{width:100%;height:100%;border-radius:50%;background:currentColor;animation:d-pulse calc(var(--d-duration-spin) * 1.8) ease-in-out infinite}',
|
|
125
|
+
'.d-spinner-bars{display:inline-flex;align-items:center;justify-content:center;gap:var(--d-sp-0-5)}',
|
|
126
|
+
'.d-spinner-bars>span{width:3px;height:60%;background:currentColor;border-radius:1px;animation:d-bars calc(var(--d-duration-spin) * 1.4) ease-in-out infinite}',
|
|
127
|
+
'.d-spinner-bars>span:nth-child(2){animation-delay:0.1s}',
|
|
128
|
+
'.d-spinner-bars>span:nth-child(3){animation-delay:0.2s}',
|
|
129
|
+
'.d-spinner-bars>span:nth-child(4){animation-delay:0.3s}',
|
|
130
|
+
'.d-spinner-orbit{display:inline-flex;align-items:center;justify-content:center;position:relative}',
|
|
131
|
+
'.d-spinner-orbit>span{position:absolute;width:20%;aspect-ratio:1;border-radius:50%;background:currentColor;animation:d-orbit calc(var(--d-duration-spin) * 1.8) linear infinite}',
|
|
132
|
+
'.d-spinner-orbit>span:nth-child(2){animation-delay:-0.75s}',
|
|
133
|
+
// ── Hybrid spinner (ring + center icon) ──
|
|
134
|
+
'.d-spinner-hybrid{position:relative;display:inline-flex;align-items:center;justify-content:center}',
|
|
135
|
+
'.d-spinner-hybrid>svg{position:absolute;inset:0}',
|
|
136
|
+
'.d-spinner-hybrid>.d-i{position:relative;z-index:1}',
|
|
137
|
+
'.d-spinner-dots,.d-spinner-pulse,.d-spinner-bars,.d-spinner-orbit,.d-spinner-hybrid{width:100%;height:100%}',
|
|
138
|
+
// ── Spinner colors ──
|
|
139
|
+
'.d-spinner-primary{color:var(--d-primary)}',
|
|
140
|
+
'.d-spinner-success{color:var(--d-success)}',
|
|
141
|
+
'.d-spinner-warning{color:var(--d-warning)}',
|
|
142
|
+
'.d-spinner-destructive{color:var(--d-destructive)}',
|
|
143
|
+
'.d-spinner-info{color:var(--d-info)}',
|
|
144
|
+
'.d-spinner-muted{color:var(--d-muted-fg)}',
|
|
145
|
+
|
|
146
|
+
// ═══════════════════════════════════════════════════════════════
|
|
147
|
+
// INPUT
|
|
148
|
+
// ═══════════════════════════════════════════════════════════════
|
|
149
|
+
'.d-input-wrap{display:flex;align-items:center}',
|
|
150
|
+
'.d-input{background:transparent;border:none;outline:none;width:100%;font:inherit;font-size:var(--d-density-text,inherit);padding:var(--d-density-pad-y,var(--d-sp-2)) var(--d-density-pad-x,var(--d-sp-3));min-height:var(--d-density-min-h,auto)}',
|
|
151
|
+
'.d-input-prefix,.d-input-suffix{display:flex;align-items:center;padding:0 var(--d-sp-2);color:var(--d-muted);flex-shrink:0}',
|
|
152
|
+
'.d-input[disabled]{cursor:not-allowed;opacity:var(--d-disabled-opacity)}',
|
|
153
|
+
'.d-input-xs{min-height:var(--d-field-h-xs);padding:var(--d-field-py-xs) var(--d-field-px-xs);font-size:var(--d-field-text-xs)}',
|
|
154
|
+
'.d-input-sm{min-height:var(--d-field-h-sm);padding:var(--d-field-py-sm) var(--d-field-px-sm);font-size:var(--d-field-text-sm)}',
|
|
155
|
+
'.d-input-lg{min-height:var(--d-field-h-lg);padding:var(--d-field-py-lg) var(--d-field-px-lg);font-size:var(--d-field-text-lg)}',
|
|
156
|
+
// ── INPUT GROUP ──
|
|
157
|
+
// Structure only — group draws the border, children go borderless.
|
|
158
|
+
// Three custom properties cascade to children:
|
|
159
|
+
// --d-group-border: 0 (children lose all borders)
|
|
160
|
+
// --d-group-radius: ... (positional border-radius)
|
|
161
|
+
// --d-group-shadow: none (suppress child focus rings)
|
|
162
|
+
'.d-input-group{display:flex;align-items:stretch}',
|
|
163
|
+
'.d-input-group-vertical{flex-direction:column;overflow:hidden}',
|
|
164
|
+
'.d-input-group>.d-input-wrap,.d-input-group>.d-select-wrap,.d-input-group>.d-combobox-input-wrap,.d-input-group>.d-inputnumber,.d-input-group>.d-textarea-wrap,.d-input-group>.d-cascader-trigger{flex:1;min-width:0}',
|
|
165
|
+
'.d-input-group-addon{display:flex;align-items:center;padding:0 var(--d-sp-3);font-size:var(--d-text-sm);white-space:nowrap;flex-shrink:0}',
|
|
166
|
+
// Horizontal — set group contract on children
|
|
167
|
+
'.d-input-group>*{--d-group-border:0;--d-group-shadow:none;--d-group-radius:0}',
|
|
168
|
+
'.d-input-group>:first-child{--d-group-radius:var(--d-radius) 0 0 var(--d-radius)}',
|
|
169
|
+
'.d-input-group>:last-child{--d-group-radius:0 var(--d-radius) var(--d-radius) 0}',
|
|
170
|
+
'.d-input-group>:only-child{--d-group-radius:var(--d-radius)}',
|
|
171
|
+
// Vertical — container clips corners via overflow:hidden + border-radius; reset ALL children
|
|
172
|
+
'.d-input-group-vertical>*{--d-group-radius:0}',
|
|
173
|
+
'.d-input-group-vertical>:first-child{--d-group-radius:0}',
|
|
174
|
+
'.d-input-group-vertical>:last-child{--d-group-radius:0}',
|
|
175
|
+
'.d-input-group-vertical>:only-child{--d-group-radius:0}',
|
|
176
|
+
// Group-level disabled
|
|
177
|
+
'.d-input-group[data-disabled]>*{opacity:var(--d-disabled-opacity);pointer-events:none}',
|
|
178
|
+
// Size variants for addons
|
|
179
|
+
'.d-input-group-xs .d-input-group-addon{padding:0 var(--d-field-px-xs);font-size:var(--d-field-text-xs)}',
|
|
180
|
+
'.d-input-group-sm .d-input-group-addon{padding:0 var(--d-field-px-sm);font-size:var(--d-field-text-sm)}',
|
|
181
|
+
'.d-input-group-lg .d-input-group-addon{padding:0 var(--d-field-px-lg);font-size:var(--d-field-text-lg)}',
|
|
182
|
+
// ── COMPACT GROUP ──
|
|
183
|
+
'.d-compact-group{display:inline-flex;align-items:stretch}',
|
|
184
|
+
'.d-compact-group>.d-input-wrap,.d-compact-group>.d-select-wrap,.d-compact-group>.d-combobox-input-wrap,.d-compact-group>.d-inputnumber{flex:1;min-width:0}',
|
|
185
|
+
'.d-compact-group>*{--d-group-border:0;--d-group-shadow:none;--d-group-radius:0}',
|
|
186
|
+
'.d-compact-group>:first-child{--d-group-radius:var(--d-radius) 0 0 var(--d-radius)}',
|
|
187
|
+
'.d-compact-group>:last-child{--d-group-radius:0 var(--d-radius) var(--d-radius) 0}',
|
|
188
|
+
'.d-compact-group>:only-child{--d-group-radius:var(--d-radius)}',
|
|
189
|
+
|
|
190
|
+
// ═══════════════════════════════════════════════════════════════
|
|
191
|
+
// INPUT NUMBER
|
|
192
|
+
// ═══════════════════════════════════════════════════════════════
|
|
193
|
+
'.d-inputnumber{display:inline-flex;align-items:stretch}',
|
|
194
|
+
'.d-inputnumber-input{background:transparent;border:none;outline:none;width:100%;font:inherit;padding:var(--d-sp-2) var(--d-sp-3);text-align:center;-moz-appearance:textfield}',
|
|
195
|
+
'.d-inputnumber-input::-webkit-inner-spin-button,.d-inputnumber-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}',
|
|
196
|
+
'.d-inputnumber-step{display:flex;align-items:center;justify-content:center;cursor:pointer;width:var(--d-stepper-w);flex-shrink:0;font-size:var(--d-text-sm);user-select:none;border:none;background:none;padding:0}',
|
|
197
|
+
'.d-inputnumber-step:first-child{border-right:var(--d-border-width,1px) var(--d-border-style,solid) var(--d-border);border-radius:var(--d-group-radius,var(--d-radius)) 0 0 var(--d-group-radius,var(--d-radius))}',
|
|
198
|
+
'.d-inputnumber-step:last-child{border-left:var(--d-border-width,1px) var(--d-border-style,solid) var(--d-border);border-radius:0 var(--d-group-radius,var(--d-radius)) var(--d-group-radius,var(--d-radius)) 0}',
|
|
199
|
+
'.d-inputnumber-step[disabled]{cursor:not-allowed;opacity:var(--d-disabled-opacity-soft)}',
|
|
200
|
+
|
|
201
|
+
// ═══════════════════════════════════════════════════════════════
|
|
202
|
+
// INPUT OTP
|
|
203
|
+
// ═══════════════════════════════════════════════════════════════
|
|
204
|
+
'.d-otp{display:inline-flex;gap:var(--d-sp-2)}',
|
|
205
|
+
'.d-otp-slot{width:var(--d-otp-w);height:var(--d-otp-h);--d-field-radius:var(--d-radius-full);text-align:center;font:inherit;font-size:var(--d-otp-text);font-weight:var(--d-fw-medium,500);padding:0;outline:none}',
|
|
206
|
+
'.d-otp-sm .d-otp-slot{width:var(--d-otp-w-sm);height:var(--d-otp-h-sm);font-size:var(--d-otp-text-sm)}',
|
|
207
|
+
'.d-otp-lg .d-otp-slot{width:var(--d-otp-w-lg);height:var(--d-otp-h-lg);font-size:var(--d-otp-text-lg)}',
|
|
208
|
+
// focus-visible handled by .d-field:focus-within (slot IS the field — no separate outline needed)
|
|
209
|
+
'.d-otp-separator{display:flex;align-items:center;padding:0 var(--d-sp-1);font-size:var(--d-text-lg)}',
|
|
210
|
+
|
|
211
|
+
// ═══════════════════════════════════════════════════════════════
|
|
212
|
+
// TEXTAREA
|
|
213
|
+
// ═══════════════════════════════════════════════════════════════
|
|
214
|
+
'.d-textarea-wrap{display:flex;--d-field-radius:var(--d-radius-panel)}',
|
|
215
|
+
'.d-textarea{background:transparent;border:none;outline:none;width:100%;font:inherit;padding:var(--d-sp-2) var(--d-sp-3);min-height:4rem;border-radius:inherit}',
|
|
216
|
+
'.d-textarea[disabled]{cursor:not-allowed;opacity:var(--d-disabled-opacity)}',
|
|
217
|
+
'.d-textarea-xs{padding:var(--d-field-py-xs) var(--d-field-px-xs);font-size:var(--d-field-text-xs)}',
|
|
218
|
+
'.d-textarea-sm{padding:var(--d-field-py-sm) var(--d-field-px-sm);font-size:var(--d-field-text-sm)}',
|
|
219
|
+
'.d-textarea-lg{padding:var(--d-field-py-lg) var(--d-field-px-lg);font-size:var(--d-field-text-lg)}',
|
|
220
|
+
|
|
221
|
+
// ═══════════════════════════════════════════════════════════════
|
|
222
|
+
// CARD
|
|
223
|
+
// ═══════════════════════════════════════════════════════════════
|
|
224
|
+
'.d-card{display:flex;flex-direction:column;overflow:hidden}',
|
|
225
|
+
'.d-card-header{padding:var(--d-compound-pad) var(--d-compound-pad) 0;font-weight:var(--d-fw-title);font-size:var(--d-text-lg)}',
|
|
226
|
+
'.d-card-body{padding:var(--d-compound-gap) var(--d-compound-pad)}',
|
|
227
|
+
'.d-card-body:first-child{padding-top:var(--d-compound-pad)}',
|
|
228
|
+
'.d-card-body:last-child{padding-bottom:var(--d-compound-pad)}',
|
|
229
|
+
'.d-card-footer{padding:var(--d-compound-pad)}',
|
|
230
|
+
'.d-card-cover{overflow:hidden}',
|
|
231
|
+
'.d-card-cover>img{width:100%;display:block}',
|
|
232
|
+
'.d-card-meta{display:flex;align-items:center;gap:var(--d-sp-3)}',
|
|
233
|
+
// Size: sm — reduced padding
|
|
234
|
+
'.d-card-sm .d-card-header{padding:var(--d-sp-3) var(--d-sp-3) 0;font-size:var(--d-text-base)}',
|
|
235
|
+
'.d-card-sm .d-card-body{padding:var(--d-sp-2) var(--d-sp-3)}',
|
|
236
|
+
'.d-card-sm .d-card-body:first-child{padding-top:var(--d-sp-3)}',
|
|
237
|
+
'.d-card-sm .d-card-body:last-child{padding-bottom:var(--d-sp-3)}',
|
|
238
|
+
'.d-card-sm .d-card-footer{padding:var(--d-sp-3)}',
|
|
239
|
+
'.d-card-sm .d-card-actions{font-size:var(--d-text-sm)}',
|
|
240
|
+
// Header with extra (flex row: title left, extra right)
|
|
241
|
+
'.d-card-header-extra{display:flex;align-items:center;justify-content:space-between}',
|
|
242
|
+
'.d-card-header-content{flex:1;min-width:0}',
|
|
243
|
+
'.d-card-extra{flex-shrink:0;margin-left:var(--d-sp-3)}',
|
|
244
|
+
// Card.Meta — avatar + detail column
|
|
245
|
+
'.d-card-meta-detail{display:flex;flex-direction:column;gap:var(--d-sp-1);min-width:0}',
|
|
246
|
+
'.d-card-meta-title{font-weight:var(--d-fw-title);font-size:var(--d-text-base);line-height:var(--d-lh-tight)}',
|
|
247
|
+
'.d-card-meta-description{font-size:var(--d-text-sm)}',
|
|
248
|
+
// Card.Grid
|
|
249
|
+
'.d-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}',
|
|
250
|
+
// Card.Actions — equal-width cells with separators
|
|
251
|
+
'.d-card-actions{display:flex}',
|
|
252
|
+
'.d-card-actions>*{flex:1;display:flex;align-items:center;justify-content:center;padding:var(--d-compound-gap) 0;cursor:pointer}',
|
|
253
|
+
'.d-card-actions>*+*{border-left:var(--d-border-width) var(--d-border-style) var(--d-border)}',
|
|
254
|
+
// Card loading placeholder
|
|
255
|
+
'.d-card-loading{padding:var(--d-compound-pad)}',
|
|
256
|
+
// Tabs inside Card — seamless integration
|
|
257
|
+
'.d-card>.d-tabs .d-tabs-list{padding:0 var(--d-compound-pad)}',
|
|
258
|
+
'.d-card>.d-tabs .d-tabs-panel{padding:var(--d-compound-gap) var(--d-compound-pad) var(--d-compound-pad)}',
|
|
259
|
+
|
|
260
|
+
// ═══════════════════════════════════════════════════════════════
|
|
261
|
+
// BADGE
|
|
262
|
+
// ═══════════════════════════════════════════════════════════════
|
|
263
|
+
'.d-badge{display:inline-flex;align-items:center;gap:var(--d-sp-1);font-size:var(--d-text-sm);padding:var(--d-sp-1) var(--d-sp-2);font-weight:var(--d-fw-medium,500);line-height:var(--d-lh-none);vertical-align:middle}',
|
|
264
|
+
'.d-badge-dot{width:var(--d-badge-dot);height:var(--d-badge-dot);border-radius:50%;flex-shrink:0}',
|
|
265
|
+
'.d-badge-wrapper{position:relative;display:inline-flex}',
|
|
266
|
+
'.d-badge-sup{position:absolute;top:-4px;right:-4px;z-index:1}',
|
|
267
|
+
|
|
268
|
+
// ═══════════════════════════════════════════════════════════════
|
|
269
|
+
// TAG (extends Badge concept — removable labels)
|
|
270
|
+
// ═══════════════════════════════════════════════════════════════
|
|
271
|
+
'.d-tag{display:inline-flex;align-items:center;gap:var(--d-sp-1);font-size:var(--d-text-sm);padding:var(--d-sp-1) var(--d-sp-2);font-weight:var(--d-fw-medium,500);line-height:var(--d-lh-none);white-space:nowrap;vertical-align:middle}',
|
|
272
|
+
'.d-tag-close{display:inline-flex;align-items:center;cursor:pointer;background:none;border:none;padding:0;font-size:0.875em;line-height:var(--d-lh-none);opacity:var(--d-icon-muted)}',
|
|
273
|
+
'.d-tag-close:hover{opacity:1}',
|
|
274
|
+
'.d-tag-checkable{cursor:pointer}',
|
|
275
|
+
'.d-tag-custom{background:var(--d-tag-bg);color:var(--d-tag-fg);border-color:var(--d-tag-bg)}',
|
|
276
|
+
|
|
277
|
+
// ═══════════════════════════════════════════════════════════════
|
|
278
|
+
// CHIP (pill-shaped tag with icon support)
|
|
279
|
+
// ═══════════════════════════════════════════════════════════════
|
|
280
|
+
'.d-chip{display:inline-flex;align-items:center;gap:var(--d-sp-1-5);border-radius:var(--d-radius-full);padding:var(--d-sp-1) var(--d-sp-3);font-size:var(--d-text-sm);font-weight:var(--d-fw-medium,500);line-height:var(--d-lh-normal);cursor:default;white-space:nowrap;vertical-align:middle}',
|
|
281
|
+
'.d-chip-xs{padding:0 var(--d-sp-1-5);font-size:var(--d-text-xs);gap:var(--d-sp-1)}',
|
|
282
|
+
'.d-chip-sm{padding:0.125rem var(--d-sp-2);font-size:var(--d-text-sm);gap:var(--d-sp-1)}',
|
|
283
|
+
'.d-chip-lg{padding:var(--d-sp-1-5) var(--d-sp-4);font-size:var(--d-text-base);gap:var(--d-sp-2)}',
|
|
284
|
+
'.d-chip-icon{flex-shrink:0;width:1em;height:1em}',
|
|
285
|
+
'.d-chip-label{overflow:hidden;text-overflow:ellipsis}',
|
|
286
|
+
'.d-chip-remove{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;cursor:pointer;font-size:1em;line-height:var(--d-lh-none);padding:0;margin-left:0.125rem;opacity:var(--d-icon-muted)}',
|
|
287
|
+
'.d-chip-remove:hover{opacity:1}',
|
|
288
|
+
'.d-chip-interactive{cursor:pointer}',
|
|
289
|
+
|
|
290
|
+
// ═══════════════════════════════════════════════════════════════
|
|
291
|
+
// CHECKBOX
|
|
292
|
+
// ═══════════════════════════════════════════════════════════════
|
|
293
|
+
'.d-checkbox{display:inline-flex;align-items:center;gap:var(--d-sp-2);cursor:pointer;user-select:none}',
|
|
294
|
+
'.d-checkbox-native{position:absolute;opacity:0;width:0;height:0;pointer-events:none}',
|
|
295
|
+
'.d-checkbox-check{display:flex;align-items:center;justify-content:center;width:var(--d-checkbox-size,1.125rem);height:var(--d-checkbox-size,1.125rem);flex-shrink:0;position:relative;overflow:hidden}',
|
|
296
|
+
'.d-checkbox-check::after{content:"";display:block;width:100%;height:100%;-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D\'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg\'%20width%3D\'24\'%20height%3D\'24\'%20viewBox%3D\'0%200%2024%2024\'%20fill%3D\'none\'%20stroke%3D\'black\'%20stroke-width%3D\'2\'%20stroke-linecap%3D\'round\'%20stroke-linejoin%3D\'round\'%3E%3Cpolyline%20points%3D\'20%206%209%2017%204%2012\'%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D\'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg\'%20width%3D\'24\'%20height%3D\'24\'%20viewBox%3D\'0%200%2024%2024\'%20fill%3D\'none\'%20stroke%3D\'black\'%20stroke-width%3D\'2\'%20stroke-linecap%3D\'round\'%20stroke-linejoin%3D\'round\'%3E%3Cpolyline%20points%3D\'20%206%209%2017%204%2012\'%2F%3E%3C%2Fsvg%3E");-webkit-mask-size:65% 65%;mask-size:65% 65%;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;background:currentColor;opacity:0;transform:scale(0.5);transition:opacity var(--d-duration-fast) var(--d-easing-standard),transform var(--d-duration-fast) var(--d-easing-bounce,var(--d-easing-standard))}',
|
|
297
|
+
'.d-checkbox:has(:checked) .d-checkbox-check::after,.d-checkbox-inline:has(:checked) .d-checkbox-check::after{opacity:1;transform:scale(1)}',
|
|
298
|
+
'@keyframes d-check-pop{0%{transform:scale(1)}40%{transform:scale(0.85)}70%{transform:scale(1.08)}100%{transform:scale(1)}}',
|
|
299
|
+
'.d-checkbox:has(:checked) .d-checkbox-check,.d-checkbox-inline:has(:checked) .d-checkbox-check{animation:d-check-pop var(--d-duration-normal) var(--d-easing-bounce,var(--d-easing-standard))}',
|
|
300
|
+
'.d-checkbox:has(:indeterminate) .d-checkbox-check::after,.d-checkbox-inline:has(:indeterminate) .d-checkbox-check::after{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D\'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg\'%20width%3D\'24\'%20height%3D\'24\'%20viewBox%3D\'0%200%2024%2024\'%20fill%3D\'none\'%20stroke%3D\'black\'%20stroke-width%3D\'2\'%20stroke-linecap%3D\'round\'%20stroke-linejoin%3D\'round\'%3E%3Cline%20x1%3D\'5\'%20y1%3D\'12\'%20x2%3D\'19\'%20y2%3D\'12\'%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D\'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg\'%20width%3D\'24\'%20height%3D\'24\'%20viewBox%3D\'0%200%2024%2024\'%20fill%3D\'none\'%20stroke%3D\'black\'%20stroke-width%3D\'2\'%20stroke-linecap%3D\'round\'%20stroke-linejoin%3D\'round\'%3E%3Cline%20x1%3D\'5\'%20y1%3D\'12\'%20x2%3D\'19\'%20y2%3D\'12\'%2F%3E%3C%2Fsvg%3E");opacity:1;transform:scale(1)}',
|
|
301
|
+
'@media(prefers-reduced-motion:reduce){.d-checkbox:has(:checked) .d-checkbox-check,.d-checkbox-inline:has(:checked) .d-checkbox-check{animation:none}.d-checkbox-check::after{transition:none}}',
|
|
302
|
+
'.d-checkbox-native:focus-visible~.d-checkbox-check{outline:var(--d-focus-ring-width) var(--d-focus-ring-style,solid) var(--d-focus-ring-color,var(--d-ring));outline-offset:var(--d-focus-ring-offset)}',
|
|
303
|
+
'.d-checkbox-label{font-size:var(--d-text-base)}',
|
|
304
|
+
'.d-checkbox-xs .d-checkbox-check{width:var(--d-checkbox-size-xs);height:var(--d-checkbox-size-xs)}',
|
|
305
|
+
'.d-checkbox-xs .d-checkbox-label{font-size:var(--d-field-text-xs)}',
|
|
306
|
+
'.d-checkbox-sm .d-checkbox-check{width:var(--d-checkbox-size-sm);height:var(--d-checkbox-size-sm)}',
|
|
307
|
+
'.d-checkbox-sm .d-checkbox-label{font-size:var(--d-field-text-sm)}',
|
|
308
|
+
'.d-checkbox-lg .d-checkbox-check{width:var(--d-checkbox-size-lg);height:var(--d-checkbox-size-lg)}',
|
|
309
|
+
'.d-checkbox-lg .d-checkbox-label{font-size:var(--d-field-text-lg)}',
|
|
310
|
+
'.d-checkbox-native:disabled~.d-checkbox-check{opacity:var(--d-disabled-opacity);cursor:not-allowed}',
|
|
311
|
+
'.d-checkbox-native:disabled~.d-checkbox-label{opacity:var(--d-disabled-opacity);cursor:not-allowed}',
|
|
312
|
+
'.d-checkbox-group{display:flex;flex-direction:column;gap:var(--d-sp-2)}',
|
|
313
|
+
'.d-checkbox-group-horizontal{flex-direction:row;gap:var(--d-sp-4)}',
|
|
314
|
+
'.d-checkbox-inline{display:inline-flex;align-items:center;position:relative}',
|
|
315
|
+
|
|
316
|
+
// ═══════════════════════════════════════════════════════════════
|
|
317
|
+
// SWITCH
|
|
318
|
+
// ═══════════════════════════════════════════════════════════════
|
|
319
|
+
'.d-switch{display:inline-flex;align-items:center;gap:var(--d-sp-2);cursor:pointer;user-select:none}',
|
|
320
|
+
'.d-switch-native{position:absolute;opacity:0;width:0;height:0;pointer-events:none}',
|
|
321
|
+
'.d-switch-track{position:relative;width:var(--d-switch-w);height:var(--d-switch-h);border-radius:calc(var(--d-switch-h) / 2);flex-shrink:0}',
|
|
322
|
+
'.d-switch-thumb{position:absolute;width:var(--d-switch-thumb);height:var(--d-switch-thumb);border-radius:50%;top:50%;transform:translateY(-50%);left:calc((var(--d-switch-h) - var(--d-switch-thumb)) / 2)}',
|
|
323
|
+
'.d-switch:has(:checked) .d-switch-thumb{left:calc(var(--d-switch-w) - var(--d-switch-thumb) - (var(--d-switch-h) - var(--d-switch-thumb)) / 2)}',
|
|
324
|
+
// Switch size variants
|
|
325
|
+
'.d-switch-xs{--d-switch-w:var(--d-switch-w-xs);--d-switch-h:var(--d-switch-h-xs);--d-switch-thumb:var(--d-switch-thumb-xs)}',
|
|
326
|
+
'.d-switch-xs .d-switch-label{font-size:var(--d-field-text-xs)}',
|
|
327
|
+
'.d-switch-sm{--d-switch-w:var(--d-switch-w-sm);--d-switch-h:var(--d-switch-h-sm);--d-switch-thumb:var(--d-switch-thumb-sm)}',
|
|
328
|
+
'.d-switch-sm .d-switch-label{font-size:var(--d-field-text-sm)}',
|
|
329
|
+
'.d-switch-lg{--d-switch-w:var(--d-switch-w-lg);--d-switch-h:var(--d-switch-h-lg);--d-switch-thumb:var(--d-switch-thumb-lg)}',
|
|
330
|
+
'.d-switch-lg .d-switch-label{font-size:var(--d-field-text-lg)}',
|
|
331
|
+
'.d-switch-label{font-size:var(--d-text-base)}',
|
|
332
|
+
'.d-switch-native:disabled~.d-switch-track{opacity:var(--d-disabled-opacity);cursor:not-allowed}',
|
|
333
|
+
'.d-switch:has(:disabled),.d-switch[data-disabled]{cursor:not-allowed}',
|
|
334
|
+
|
|
335
|
+
// ═══════════════════════════════════════════════════════════════
|
|
336
|
+
// RADIO GROUP
|
|
337
|
+
// ═══════════════════════════════════════════════════════════════
|
|
338
|
+
'.d-radiogroup{display:flex;flex-direction:column;gap:var(--d-sp-2)}',
|
|
339
|
+
'.d-radiogroup-horizontal{flex-direction:row;gap:var(--d-sp-4)}',
|
|
340
|
+
'.d-radio{display:inline-flex;align-items:center;gap:var(--d-sp-2);cursor:pointer;user-select:none}',
|
|
341
|
+
'.d-radio-native{position:absolute;opacity:0;width:0;height:0;pointer-events:none}',
|
|
342
|
+
'.d-radio-indicator{display:flex;align-items:center;justify-content:center;width:var(--d-checkbox-size);height:var(--d-checkbox-size);border-radius:50%;flex-shrink:0}',
|
|
343
|
+
'.d-radio-dot{width:calc(var(--d-checkbox-size) * 0.44);height:calc(var(--d-checkbox-size) * 0.44);border-radius:50%;transform:scale(0);transition:transform var(--d-duration-fast) var(--d-easing-standard)}',
|
|
344
|
+
'.d-radio:has(:checked) .d-radio-dot{transform:scale(1)}',
|
|
345
|
+
'.d-radio-label{font-size:var(--d-text-base)}',
|
|
346
|
+
'.d-radiogroup-xs .d-radio-indicator{width:var(--d-checkbox-size-xs);height:var(--d-checkbox-size-xs)}',
|
|
347
|
+
'.d-radiogroup-xs .d-radio-dot{width:calc(var(--d-checkbox-size-xs) * 0.44);height:calc(var(--d-checkbox-size-xs) * 0.44)}',
|
|
348
|
+
'.d-radiogroup-xs .d-radio-label{font-size:var(--d-field-text-xs)}',
|
|
349
|
+
'.d-radiogroup-sm .d-radio-indicator{width:var(--d-checkbox-size-sm);height:var(--d-checkbox-size-sm)}',
|
|
350
|
+
'.d-radiogroup-sm .d-radio-dot{width:calc(var(--d-checkbox-size-sm) * 0.44);height:calc(var(--d-checkbox-size-sm) * 0.44)}',
|
|
351
|
+
'.d-radiogroup-sm .d-radio-label{font-size:var(--d-field-text-sm)}',
|
|
352
|
+
'.d-radiogroup-lg .d-radio-indicator{width:var(--d-checkbox-size-lg);height:var(--d-checkbox-size-lg)}',
|
|
353
|
+
'.d-radiogroup-lg .d-radio-dot{width:calc(var(--d-checkbox-size-lg) * 0.44);height:calc(var(--d-checkbox-size-lg) * 0.44)}',
|
|
354
|
+
'.d-radiogroup-lg .d-radio-label{font-size:var(--d-field-text-lg)}',
|
|
355
|
+
'.d-radio-disabled{opacity:var(--d-disabled-opacity);cursor:not-allowed}',
|
|
356
|
+
|
|
357
|
+
// ═══════════════════════════════════════════════════════════════
|
|
358
|
+
// SELECT
|
|
359
|
+
// ═══════════════════════════════════════════════════════════════
|
|
360
|
+
'.d-select-wrap{position:relative;display:inline-flex;flex-direction:column}',
|
|
361
|
+
'.d-select{display:flex;align-items:center;justify-content:space-between;gap:var(--d-density-gap,var(--d-sp-2));width:100%;font:inherit;font-size:var(--d-density-text,var(--d-text-base));padding:var(--d-density-pad-y,var(--d-sp-2)) var(--d-density-pad-x,var(--d-sp-3));min-height:var(--d-density-min-h,auto);cursor:pointer;outline:none;text-align:left;border:none;background:none}',
|
|
362
|
+
// focus-visible handled by .d-field:focus-within on .d-select-wrap
|
|
363
|
+
'.d-select[disabled]{cursor:not-allowed;opacity:var(--d-disabled-opacity)}',
|
|
364
|
+
'.d-select-display{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}',
|
|
365
|
+
'.d-select-arrow{flex-shrink:0;font-size:var(--d-text-sm);transition:transform var(--d-duration-fast)}',
|
|
366
|
+
// Chevron rotation now handled by unified rule above (.d-select-open .d-caret, etc.)
|
|
367
|
+
'.d-select-dropdown{position:absolute;top:100%;left:0;right:0;z-index:var(--d-z-dropdown);max-height:var(--d-panel-max-h);overflow:auto;margin-top:var(--d-offset-dropdown);padding:var(--d-sp-1)}',
|
|
368
|
+
'.d-select-option{padding:var(--d-sp-2) var(--d-sp-3);cursor:pointer;font-size:var(--d-text-base);border-radius:var(--d-radius-inner)}',
|
|
369
|
+
'.d-select-option-disabled{opacity:var(--d-disabled-opacity);cursor:not-allowed}',
|
|
370
|
+
'.d-select-placeholder{color:var(--d-muted)}',
|
|
371
|
+
'.d-select-optgroup{padding:var(--d-sp-1) var(--d-sp-3);font-size:var(--d-text-sm);font-weight:var(--d-fw-title);color:var(--d-muted)}',
|
|
372
|
+
'.d-select-clear{display:flex;align-items:center;cursor:pointer;padding:0 var(--d-sp-2);font-size:var(--d-text-sm);opacity:var(--d-icon-muted)}',
|
|
373
|
+
'.d-select-clear:hover{opacity:1}',
|
|
374
|
+
'.d-select-multi-tag{display:inline-flex;align-items:center;gap:var(--d-sp-1);padding:var(--d-sp-1) var(--d-sp-2);font-size:var(--d-text-sm);border-radius:var(--d-radius)}',
|
|
375
|
+
'.d-select-multi-tag-close{cursor:pointer;font-size:0.75em;opacity:var(--d-icon-muted)}',
|
|
376
|
+
'.d-select-multi-tag-close:hover{opacity:1}',
|
|
377
|
+
// Size variants
|
|
378
|
+
'.d-select-xs .d-select{min-height:var(--d-field-h-xs);padding:var(--d-field-py-xs) var(--d-field-px-xs);font-size:var(--d-field-text-xs)}',
|
|
379
|
+
'.d-select-xs .d-select-option{padding:var(--d-field-py-xs) var(--d-field-px-xs);font-size:var(--d-field-text-xs)}',
|
|
380
|
+
'.d-select-sm .d-select{min-height:var(--d-field-h-sm);padding:var(--d-field-py-sm) var(--d-field-px-sm);font-size:var(--d-field-text-sm)}',
|
|
381
|
+
'.d-select-sm .d-select-option{padding:var(--d-field-py-sm) var(--d-field-px-sm);font-size:var(--d-field-text-sm)}',
|
|
382
|
+
'.d-select-lg .d-select{min-height:var(--d-field-h-lg);padding:var(--d-field-py-lg) var(--d-field-px-lg);font-size:var(--d-field-text-lg)}',
|
|
383
|
+
'.d-select-lg .d-select-option{padding:var(--d-field-py-lg) var(--d-field-px-lg);font-size:var(--d-field-text-lg)}',
|
|
384
|
+
|
|
385
|
+
// ═══════════════════════════════════════════════════════════════
|
|
386
|
+
// COMBOBOX / AUTOCOMPLETE
|
|
387
|
+
// ═══════════════════════════════════════════════════════════════
|
|
388
|
+
'.d-combobox{position:relative;display:inline-flex;flex-direction:column}',
|
|
389
|
+
'.d-combobox-input-wrap{display:flex;align-items:center}',
|
|
390
|
+
'.d-combobox-input{background:transparent;border:none;outline:none;width:100%;font:inherit;padding:var(--d-sp-2) var(--d-sp-3)}',
|
|
391
|
+
'.d-combobox-input[disabled]{cursor:not-allowed;opacity:var(--d-disabled-opacity)}',
|
|
392
|
+
'.d-combobox-arrow{flex-shrink:0;padding:0 var(--d-sp-2);cursor:pointer;font-size:var(--d-text-sm)}',
|
|
393
|
+
'.d-combobox-listbox{position:absolute;top:100%;left:0;right:0;z-index:var(--d-z-dropdown);max-height:var(--d-panel-max-h);overflow:auto;margin-top:var(--d-offset-dropdown);padding:var(--d-sp-1)}',
|
|
394
|
+
'.d-combobox-option{padding:var(--d-sp-2) var(--d-sp-3);cursor:pointer;font-size:var(--d-text-base);border-radius:var(--d-radius-inner)}',
|
|
395
|
+
'.d-combobox-option-disabled{opacity:var(--d-disabled-opacity);cursor:not-allowed}',
|
|
396
|
+
'.d-combobox-empty{padding:var(--d-sp-3);font-size:var(--d-text-sm);text-align:center}',
|
|
397
|
+
// Size variants
|
|
398
|
+
'.d-combobox-xs .d-combobox-input{min-height:var(--d-field-h-xs);padding:var(--d-field-py-xs) var(--d-field-px-xs);font-size:var(--d-field-text-xs)}',
|
|
399
|
+
'.d-combobox-xs .d-combobox-option{padding:var(--d-field-py-xs) var(--d-field-px-xs);font-size:var(--d-field-text-xs)}',
|
|
400
|
+
'.d-combobox-sm .d-combobox-input{min-height:var(--d-field-h-sm);padding:var(--d-field-py-sm) var(--d-field-px-sm);font-size:var(--d-field-text-sm)}',
|
|
401
|
+
'.d-combobox-sm .d-combobox-option{padding:var(--d-field-py-sm) var(--d-field-px-sm);font-size:var(--d-field-text-sm)}',
|
|
402
|
+
'.d-combobox-lg .d-combobox-input{min-height:var(--d-field-h-lg);padding:var(--d-field-py-lg) var(--d-field-px-lg);font-size:var(--d-field-text-lg)}',
|
|
403
|
+
'.d-combobox-lg .d-combobox-option{padding:var(--d-field-py-lg) var(--d-field-px-lg);font-size:var(--d-field-text-lg)}',
|
|
404
|
+
|
|
405
|
+
// ═══════════════════════════════════════════════════════════════
|
|
406
|
+
// SLIDER
|
|
407
|
+
// ═══════════════════════════════════════════════════════════════
|
|
408
|
+
'.d-slider{display:flex;align-items:center;gap:var(--d-sp-3);width:100%;user-select:none}',
|
|
409
|
+
'.d-slider-track{position:relative;flex:1;height:var(--d-slider-track-h);border-radius:var(--d-radius-full);cursor:pointer}',
|
|
410
|
+
'.d-slider-fill{position:absolute;top:0;left:0;height:100%;border-radius:var(--d-radius-full)}',
|
|
411
|
+
'.d-slider-thumb{position:absolute;top:50%;width:var(--d-slider-thumb);height:var(--d-slider-thumb);border-radius:50%;transform:translate(-50%,-50%);cursor:grab;outline:none}',
|
|
412
|
+
'.d-slider-thumb:focus-visible{outline:var(--d-focus-ring-width) var(--d-focus-ring-style,solid) var(--d-focus-ring-color,var(--d-ring));outline-offset:var(--d-focus-ring-offset)}',
|
|
413
|
+
'.d-slider-active .d-slider-thumb{cursor:grabbing}',
|
|
414
|
+
'.d-slider-disabled{opacity:var(--d-disabled-opacity);pointer-events:none}',
|
|
415
|
+
'.d-slider-value{font-size:var(--d-text-sm);min-width:2em;text-align:center}',
|
|
416
|
+
'.d-slider-marks{position:relative;width:100%;margin-top:var(--d-sp-1)}',
|
|
417
|
+
'.d-slider-mark{position:absolute;font-size:var(--d-text-xs);transform:translateX(-50%)}',
|
|
418
|
+
'.d-slider-vertical{flex-direction:column;width:auto;height:200px}',
|
|
419
|
+
'.d-slider-vertical .d-slider-track{width:var(--d-slider-track-h);height:100%;flex:1}',
|
|
420
|
+
'.d-slider-vertical .d-slider-fill{width:100%;height:auto;bottom:0;top:auto}',
|
|
421
|
+
'.d-slider-vertical .d-slider-thumb{left:50%;top:auto;transform:translate(-50%,50%)}',
|
|
422
|
+
|
|
423
|
+
// ═══════════════════════════════════════════════════════════════
|
|
424
|
+
// RATE (Star rating)
|
|
425
|
+
// ═══════════════════════════════════════════════════════════════
|
|
426
|
+
'.d-rate{display:inline-flex;gap:var(--d-sp-1);font-size:var(--d-rate-size)}',
|
|
427
|
+
'.d-rate-star{cursor:pointer;transition:transform var(--d-duration-instant),color var(--d-duration-instant);user-select:none;background:none;border:none;padding:0;font-size:inherit;line-height:var(--d-lh-none)}',
|
|
428
|
+
'.d-rate:not([aria-disabled="true"]) .d-rate-star:hover{transform:scale(1.15)}',
|
|
429
|
+
'.d-rate-star:focus-visible{outline:var(--d-focus-ring-width) var(--d-focus-ring-style,solid) var(--d-focus-ring-color,var(--d-ring));outline-offset:var(--d-focus-ring-offset)}',
|
|
430
|
+
'.d-rate[aria-disabled="true"] .d-rate-star{cursor:default;transform:none}',
|
|
431
|
+
'.d-rate-sm{font-size:var(--d-rate-size-sm);gap:var(--d-rate-gap-sm)}',
|
|
432
|
+
'.d-rate-lg{font-size:var(--d-rate-size-lg)}',
|
|
433
|
+
|
|
434
|
+
// ═══════════════════════════════════════════════════════════════
|
|
435
|
+
// COLOR PICKER
|
|
436
|
+
// ═══════════════════════════════════════════════════════════════
|
|
437
|
+
'.d-colorpicker{position:relative;display:inline-flex;flex-direction:column}',
|
|
438
|
+
'.d-colorpicker-trigger{display:inline-flex;align-items:center;gap:var(--d-sp-2);cursor:pointer;padding:var(--d-sp-1-5) var(--d-sp-3);font:inherit;font-size:var(--d-text-base);border:none;background:none;outline:none}',
|
|
439
|
+
'.d-colorpicker-swatch{width:var(--d-colorpicker-swatch);height:var(--d-colorpicker-swatch);border-radius:var(--d-radius-inner);flex-shrink:0}',
|
|
440
|
+
'.d-colorpicker-panel{position:absolute;top:100%;left:0;z-index:var(--d-z-dropdown);padding:var(--d-sp-5);margin-top:var(--d-offset-dropdown);min-width:240px;display:flex;flex-direction:column;gap:var(--d-sp-3)}',
|
|
441
|
+
'.d-colorpicker-controls{display:flex;flex-direction:column;gap:var(--d-sp-2)}',
|
|
442
|
+
'.d-colorpicker-saturation{position:relative;width:100%;height:var(--d-colorpicker-sat-h);cursor:crosshair;border-radius:var(--d-radius-inner)}',
|
|
443
|
+
'.d-colorpicker-bar-wrap{position:relative;display:flex;align-items:center;height:var(--d-colorpicker-thumb)}',
|
|
444
|
+
'.d-colorpicker-hue{position:relative;flex:1;height:var(--d-colorpicker-bar-h);border-radius:var(--d-radius-inner);cursor:pointer;background:linear-gradient(to right,red,yellow,lime,cyan,blue,magenta,red)}',
|
|
445
|
+
'.d-colorpicker-alpha{position:relative;flex:1;height:var(--d-colorpicker-bar-h);border-radius:var(--d-radius-inner);cursor:pointer}',
|
|
446
|
+
'.d-colorpicker-thumb{position:absolute;width:var(--d-colorpicker-thumb);height:var(--d-colorpicker-thumb);border-radius:50%;border:var(--d-border-width-strong) solid white;box-shadow:var(--d-elevation-1);transform:translate(-50%,-50%);pointer-events:none;box-sizing:border-box}',
|
|
447
|
+
'.d-colorpicker-input{display:flex;gap:var(--d-sp-2);align-items:center}',
|
|
448
|
+
'.d-colorpicker-input input{flex:1;font:inherit;font-size:var(--d-text-sm);padding:var(--d-sp-1) var(--d-sp-2);border-radius:var(--d-radius-inner);border:var(--d-border-width) solid var(--d-border);background:var(--d-surface-0);color:var(--d-fg);outline:none;box-sizing:border-box}',
|
|
449
|
+
'.d-colorpicker-input input:focus{border-color:var(--d-ring)}',
|
|
450
|
+
'.d-colorpicker-presets-section{display:flex;flex-direction:column;gap:var(--d-sp-1);border-top:var(--d-border-width) solid var(--d-border);padding-top:var(--d-sp-3)}',
|
|
451
|
+
'.d-colorpicker-presets-label{font-size:var(--d-text-xs);color:var(--d-muted-fg)}',
|
|
452
|
+
'.d-colorpicker-presets{display:flex;flex-wrap:wrap;gap:var(--d-sp-1)}',
|
|
453
|
+
'.d-colorpicker-preset{width:var(--d-colorpicker-preset);height:var(--d-colorpicker-preset);border-radius:var(--d-radius-inner);cursor:pointer;border:none;padding:0}',
|
|
454
|
+
|
|
455
|
+
// ═══════════════════════════════════════════════════════════════
|
|
456
|
+
// COLOR PALETTE
|
|
457
|
+
// ═══════════════════════════════════════════════════════════════
|
|
458
|
+
'.d-colorpalette{display:flex;flex-direction:column;gap:var(--d-sp-3)}',
|
|
459
|
+
'.d-colorpalette-toolbar{display:flex;flex-wrap:wrap;gap:var(--d-sp-2);align-items:center}',
|
|
460
|
+
'.d-colorpalette-swatches{display:flex;flex-wrap:wrap;gap:var(--d-sp-3)}',
|
|
461
|
+
'.d-colorpalette-swatch{display:flex;flex-direction:column;gap:var(--d-sp-1);border-radius:var(--d-radius);cursor:grab;outline:none}',
|
|
462
|
+
'.d-colorpalette-swatch:focus-visible{outline:var(--d-focus-ring-width) var(--d-focus-ring-style,solid) var(--d-focus-ring-color,var(--d-ring));outline-offset:var(--d-focus-ring-offset)}',
|
|
463
|
+
'.d-colorpalette-swatch-color{position:relative;width:var(--d-colorpalette-swatch-w);height:var(--d-colorpalette-swatch-h);border-radius:var(--d-radius-inner);display:flex;align-items:flex-end;padding:var(--d-sp-1);box-shadow:var(--d-elevation-1);transition:box-shadow var(--d-duration-fast) var(--d-easing-standard)}',
|
|
464
|
+
'.d-colorpalette-swatch-color:hover{box-shadow:var(--d-elevation-2)}',
|
|
465
|
+
'.d-colorpalette-lock{position:absolute;top:var(--d-sp-1);right:var(--d-sp-1);opacity:0;transition:opacity var(--d-duration-fast) var(--d-easing-standard);background:none;border:none;cursor:pointer;padding:0;line-height:1}',
|
|
466
|
+
'.d-colorpalette-swatch:hover .d-colorpalette-lock,.d-colorpalette-lock[aria-pressed="true"]{opacity:1}',
|
|
467
|
+
'.d-colorpalette-contrast{position:absolute;bottom:var(--d-sp-1);left:var(--d-sp-1);font-size:var(--d-text-xs);padding:var(--d-sp-0-5) var(--d-sp-1);border-radius:var(--d-radius-inner);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);line-height:var(--d-lh-none)}',
|
|
468
|
+
'.d-colorpalette-swatch-info{display:flex;align-items:center;gap:var(--d-sp-1);font-family:var(--d-font-mono);font-size:var(--d-text-sm)}',
|
|
469
|
+
'.d-colorpalette-hex{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--d-muted-fg)}',
|
|
470
|
+
'.d-colorpalette-copy,.d-colorpalette-edit,.d-colorpalette-remove{opacity:0;transition:opacity var(--d-duration-fast) var(--d-easing-standard);background:none;border:none;cursor:pointer;padding:0;color:var(--d-muted-fg);line-height:1}',
|
|
471
|
+
'.d-colorpalette-copy:hover,.d-colorpalette-edit:hover,.d-colorpalette-remove:hover{color:var(--d-fg)}',
|
|
472
|
+
'.d-colorpalette-swatch:hover .d-colorpalette-copy,.d-colorpalette-swatch:hover .d-colorpalette-edit,.d-colorpalette-swatch:hover .d-colorpalette-remove{opacity:1}',
|
|
473
|
+
'.d-colorpalette-shades{display:flex;gap:var(--d-sp-0-5)}',
|
|
474
|
+
'.d-colorpalette-shade{flex:1;height:var(--d-colorpalette-shade-h);border-radius:var(--d-radius-inner);transition:transform var(--d-duration-fast) var(--d-easing-standard)}',
|
|
475
|
+
'.d-colorpalette-shade:hover{transform:scaleY(1.3)}',
|
|
476
|
+
'.d-colorpalette-add{display:flex;align-items:center;justify-content:center;width:var(--d-colorpalette-swatch-w);height:var(--d-colorpalette-swatch-h);border:var(--d-border-width) dashed var(--d-border);border-radius:var(--d-radius-inner);cursor:pointer;background:none;color:var(--d-muted-fg);transition:border-color var(--d-duration-fast) var(--d-easing-standard),color var(--d-duration-fast) var(--d-easing-standard)}',
|
|
477
|
+
'.d-colorpalette-add:hover{border-color:var(--d-primary);color:var(--d-primary)}',
|
|
478
|
+
'.d-colorpalette-add:focus-visible{outline:var(--d-focus-ring-width) var(--d-focus-ring-style,solid) var(--d-focus-ring-color,var(--d-ring));outline-offset:var(--d-focus-ring-offset)}',
|
|
479
|
+
'.d-colorpalette-sm{--d-colorpalette-swatch-w:var(--d-colorpalette-swatch-w-sm);--d-colorpalette-swatch-h:var(--d-colorpalette-swatch-h-sm)}',
|
|
480
|
+
'.d-colorpalette-lg{--d-colorpalette-swatch-w:var(--d-colorpalette-swatch-w-lg);--d-colorpalette-swatch-h:var(--d-colorpalette-swatch-h-lg)}',
|
|
481
|
+
'.d-colorpalette-swatch-dragging{opacity:var(--d-disabled-opacity);z-index:var(--d-z-dropdown)}',
|
|
482
|
+
|
|
483
|
+
// ═══════════════════════════════════════════════════════════════
|
|
484
|
+
// DATE PICKER
|
|
485
|
+
// ═══════════════════════════════════════════════════════════════
|
|
486
|
+
'.d-datepicker{position:relative;display:inline-flex;flex-direction:column}',
|
|
487
|
+
'.d-datepicker-input{display:flex;align-items:center}',
|
|
488
|
+
'.d-datepicker-panel{position:absolute;top:100%;left:0;z-index:var(--d-z-dropdown);margin-top:var(--d-offset-dropdown);padding:var(--d-sp-3);min-width:280px}',
|
|
489
|
+
'.d-datepicker-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:var(--d-sp-2)}',
|
|
490
|
+
'.d-datepicker-title{background:none;border:none;font:inherit;color:inherit;font-weight:var(--d-fw-title);font-size:var(--d-text-base);cursor:pointer;padding:var(--d-sp-1) var(--d-sp-2);border-radius:var(--d-radius-inner);line-height:var(--d-lh-normal);transition:background var(--d-motion-state),color var(--d-motion-state)}',
|
|
491
|
+
'.d-datepicker-nav{display:flex;gap:var(--d-sp-1)}',
|
|
492
|
+
'.d-datepicker-nav-btn{background:none;border:none;cursor:pointer;padding:var(--d-sp-1-5);font-size:var(--d-text-base);line-height:var(--d-lh-none);border-radius:var(--d-radius-inner);display:inline-flex;align-items:center;justify-content:center;color:inherit;transition:background var(--d-motion-state),color var(--d-motion-state)}',
|
|
493
|
+
'.d-datepicker-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--d-border-width);text-align:center}',
|
|
494
|
+
'.d-datepicker-weekday{font-size:var(--d-text-xs);font-weight:var(--d-fw-medium,500);padding:var(--d-sp-1);color:var(--d-muted)}',
|
|
495
|
+
'.d-datepicker-day{padding:var(--d-sp-1);font-size:var(--d-text-sm);cursor:pointer;border-radius:var(--d-radius-inner);border:none;background:none;font:inherit;line-height:var(--d-lh-none);display:inline-flex;align-items:center;justify-content:center;aspect-ratio:1;transition:background var(--d-motion-state),color var(--d-motion-state),box-shadow var(--d-motion-state)}',
|
|
496
|
+
'.d-datepicker-day:hover{background:var(--d-item-hover-bg)}',
|
|
497
|
+
'.d-datepicker-day:focus-visible{outline:var(--d-focus-ring-width) var(--d-focus-ring-style,solid) var(--d-focus-ring-color,var(--d-ring));outline-offset:var(--d-focus-ring-offset-inset)}',
|
|
498
|
+
'.d-datepicker-day-today{font-weight:var(--d-fw-heading);box-shadow:inset 0 0 0 1px var(--d-border-strong)}',
|
|
499
|
+
'.d-datepicker-day-selected{font-weight:var(--d-fw-medium,500)}',
|
|
500
|
+
'.d-datepicker-day-outside{opacity:var(--d-disabled-opacity-soft)}',
|
|
501
|
+
'.d-datepicker-day-disabled{opacity:var(--d-disabled-opacity-soft);cursor:not-allowed}',
|
|
502
|
+
'.d-datepicker-months,.d-datepicker-years{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--d-sp-2)}',
|
|
503
|
+
'.d-datepicker-month,.d-datepicker-year{padding:var(--d-sp-2);text-align:center;cursor:pointer;border:none;background:none;font:inherit;border-radius:var(--d-radius-inner);color:inherit;transition:background var(--d-motion-state),color var(--d-motion-state)}',
|
|
504
|
+
|
|
505
|
+
// ═══════════════════════════════════════════════════════════════
|
|
506
|
+
// TIME PICKER
|
|
507
|
+
// ═══════════════════════════════════════════════════════════════
|
|
508
|
+
'.d-timepicker{position:relative;display:inline-flex;flex-direction:column}',
|
|
509
|
+
'.d-timepicker-panel{position:absolute;top:100%;left:0;z-index:var(--d-z-dropdown);margin-top:var(--d-offset-dropdown);display:flex;gap:0;padding:var(--d-sp-2);overflow:hidden}',
|
|
510
|
+
'.d-timepicker-columns{display:flex;gap:0}',
|
|
511
|
+
'.d-timepicker-column{display:flex;flex-direction:column;height:var(--d-timepicker-column-h);overflow-y:auto;min-width:56px;text-align:center;scrollbar-width:thin}',
|
|
512
|
+
'.d-timepicker-cell{padding:var(--d-sp-1-5) var(--d-sp-2);cursor:pointer;font-size:var(--d-text-sm);border:none;background:none;font:inherit}',
|
|
513
|
+
'.d-timepicker-cell-selected{font-weight:var(--d-fw-medium,500)}',
|
|
514
|
+
'.d-timepicker-cell-disabled{opacity:var(--d-disabled-opacity-soft);cursor:not-allowed}',
|
|
515
|
+
|
|
516
|
+
// ═══════════════════════════════════════════════════════════════
|
|
517
|
+
// UPLOAD
|
|
518
|
+
// ═══════════════════════════════════════════════════════════════
|
|
519
|
+
'.d-upload{display:flex;flex-direction:column;gap:var(--d-sp-2)}',
|
|
520
|
+
'.d-upload-dragger{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--d-sp-8);cursor:pointer;border:var(--d-border-width-strong) dashed var(--d-border);border-radius:var(--d-radius-lg,var(--d-radius));text-align:center;gap:var(--d-sp-2)}',
|
|
521
|
+
'.d-upload-dragger:hover{border-color:var(--d-ring)}',
|
|
522
|
+
'.d-upload-dragger-active{border-color:var(--d-ring);background:var(--d-surface-1)}',
|
|
523
|
+
'.d-upload-trigger{cursor:pointer}',
|
|
524
|
+
'.d-upload-input{display:none}',
|
|
525
|
+
'.d-upload-list{display:flex;flex-direction:column;gap:var(--d-sp-1)}',
|
|
526
|
+
'.d-upload-item{display:flex;align-items:center;gap:var(--d-sp-2);padding:var(--d-sp-1-5) var(--d-sp-2);font-size:var(--d-text-sm);border-radius:var(--d-radius-inner)}',
|
|
527
|
+
'.d-upload-item-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}',
|
|
528
|
+
'.d-upload-item-remove{cursor:pointer;background:none;border:none;padding:0;font-size:1em;opacity:var(--d-disabled-opacity)}',
|
|
529
|
+
'.d-upload-item-remove:hover{opacity:1}',
|
|
530
|
+
|
|
531
|
+
// ═══════════════════════════════════════════════════════════════
|
|
532
|
+
// TRANSFER
|
|
533
|
+
// ═══════════════════════════════════════════════════════════════
|
|
534
|
+
'.d-transfer{display:flex;align-items:stretch;gap:var(--d-sp-3)}',
|
|
535
|
+
'.d-transfer-panel{display:flex;flex-direction:column;flex:1;min-width:200px;overflow:hidden}',
|
|
536
|
+
'.d-transfer-header{display:flex;align-items:center;justify-content:space-between;padding:var(--d-sp-2) var(--d-sp-3);font-size:var(--d-text-sm);font-weight:var(--d-fw-medium,500)}',
|
|
537
|
+
'.d-transfer-header label{display:flex;align-items:center;gap:var(--d-sp-2);cursor:pointer}',
|
|
538
|
+
'.d-transfer-body{flex:1;overflow:auto;min-height:200px}',
|
|
539
|
+
'.d-transfer-item{display:flex;align-items:center;gap:var(--d-sp-2);padding:var(--d-sp-1-5) var(--d-sp-3);cursor:pointer;font-size:var(--d-text-sm)}',
|
|
540
|
+
'.d-transfer-item:hover{background:var(--d-item-hover-bg)}',
|
|
541
|
+
'.d-transfer-item-disabled{opacity:var(--d-disabled-opacity);cursor:not-allowed}',
|
|
542
|
+
'.d-transfer-search{padding:var(--d-sp-2) var(--d-sp-3)}',
|
|
543
|
+
'.d-transfer-search input{font-size:var(--d-text-sm)}',
|
|
544
|
+
'.d-transfer-actions{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--d-sp-2)}',
|
|
545
|
+
'.d-transfer-footer{padding:var(--d-sp-2) var(--d-sp-3);font-size:var(--d-text-sm)}',
|
|
546
|
+
|
|
547
|
+
// ═══════════════════════════════════════════════════════════════
|
|
548
|
+
// CASCADER
|
|
549
|
+
// ═══════════════════════════════════════════════════════════════
|
|
550
|
+
'.d-cascader{position:relative;display:inline-flex;flex-direction:column}',
|
|
551
|
+
'.d-cascader-trigger{display:flex;align-items:center;gap:var(--d-sp-2);cursor:pointer;padding:var(--d-sp-2) var(--d-sp-3);outline:none}',
|
|
552
|
+
'.d-cascader-trigger:focus-visible{outline:var(--d-focus-ring-width) var(--d-focus-ring-style,solid) var(--d-focus-ring-color,var(--d-ring));outline-offset:var(--d-focus-ring-offset-inset)}',
|
|
553
|
+
'.d-cascader-display{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}',
|
|
554
|
+
'.d-cascader-placeholder{flex:1;min-width:0;color:var(--d-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}',
|
|
555
|
+
'.d-cascader-trigger .d-caret{flex-shrink:0;margin-left:auto}',
|
|
556
|
+
'.d-cascader-input{background:transparent;border:none;outline:none;flex:1;min-width:0;font:inherit;padding:0}',
|
|
557
|
+
'.d-cascader-disabled{cursor:not-allowed;opacity:var(--d-disabled-opacity)}',
|
|
558
|
+
'.d-cascader-clear{display:flex;align-items:center;cursor:pointer;padding:0 var(--d-sp-2);font-size:var(--d-text-sm);opacity:var(--d-icon-muted);border:none;background:none}',
|
|
559
|
+
'.d-cascader-clear:hover{opacity:1}',
|
|
560
|
+
'.d-cascader-dropdown{position:absolute;top:100%;left:0;z-index:var(--d-z-dropdown);display:flex;margin-top:var(--d-offset-dropdown);overflow:hidden}',
|
|
561
|
+
'.d-cascader-column{min-width:140px;max-height:var(--d-panel-max-h);overflow:auto;padding:var(--d-sp-1)}',
|
|
562
|
+
'.d-cascader-option{display:flex;align-items:center;justify-content:space-between;padding:var(--d-sp-2) var(--d-sp-3);cursor:pointer;font-size:var(--d-text-base);white-space:nowrap;border-radius:var(--d-radius-inner)}',
|
|
563
|
+
'.d-cascader-option:hover{background:var(--d-item-hover-bg)}',
|
|
564
|
+
'.d-cascader-option-disabled{opacity:var(--d-disabled-opacity);cursor:not-allowed}',
|
|
565
|
+
'.d-cascader-option-active{font-weight:var(--d-fw-medium,500)}',
|
|
566
|
+
'.d-cascader-arrow{font-size:var(--d-text-xs);opacity:var(--d-icon-muted)}',
|
|
567
|
+
|
|
568
|
+
// ═══════════════════════════════════════════════════════════════
|
|
569
|
+
// MENTIONS
|
|
570
|
+
// ═══════════════════════════════════════════════════════════════
|
|
571
|
+
'.d-mentions{position:relative;display:inline-flex;flex-direction:column}',
|
|
572
|
+
'.d-mentions-dropdown{position:absolute;bottom:100%;left:0;z-index:var(--d-z-dropdown);min-width:160px;max-height:var(--d-panel-max-h);overflow:auto;margin-bottom:var(--d-offset-dropdown);padding:var(--d-sp-1)}',
|
|
573
|
+
'.d-mentions-option{padding:var(--d-sp-2) var(--d-sp-3);cursor:pointer;font-size:var(--d-text-base);border-radius:var(--d-radius-inner)}',
|
|
574
|
+
'.d-mentions-option:hover{background:var(--d-item-hover-bg)}',
|
|
575
|
+
|
|
576
|
+
// ═══════════════════════════════════════════════════════════════
|
|
577
|
+
// LABEL
|
|
578
|
+
// ═══════════════════════════════════════════════════════════════
|
|
579
|
+
'.d-label{display:inline-block;font-size:var(--d-text-sm);font-weight:var(--d-fw-medium,500);line-height:var(--d-lh-normal);cursor:default}',
|
|
580
|
+
'.d-label-required::after{content:" *";color:var(--d-error)}',
|
|
581
|
+
|
|
582
|
+
// ═══════════════════════════════════════════════════════════════
|
|
583
|
+
// FORM FIELD (wrapper for any form control)
|
|
584
|
+
// ═══════════════════════════════════════════════════════════════
|
|
585
|
+
'.d-form-field{display:flex;flex-direction:column;gap:var(--d-sp-1-5)}',
|
|
586
|
+
'.d-form-field-label{font-size:var(--d-text-sm);font-weight:var(--d-fw-medium,500);line-height:var(--d-lh-normal)}',
|
|
587
|
+
'.d-form-field-required{color:var(--d-error)}',
|
|
588
|
+
'.d-form-field-help{font-size:var(--d-text-xs);color:var(--d-muted)}',
|
|
589
|
+
'.d-form-field-error{font-size:var(--d-text-xs);color:var(--d-error)}',
|
|
590
|
+
'.d-form{display:flex;flex-direction:column;gap:var(--d-sp-4)}',
|
|
591
|
+
'.d-form-horizontal{display:grid;grid-template-columns:auto 1fr;gap:var(--d-sp-3) var(--d-sp-4);align-items:start}',
|
|
592
|
+
'.d-form-actions{display:flex;gap:var(--d-sp-2);justify-content:flex-end}',
|
|
593
|
+
|
|
594
|
+
// ═══════════════════════════════════════════════════════════════
|
|
595
|
+
// MODAL (native <dialog>)
|
|
596
|
+
// ═══════════════════════════════════════════════════════════════
|
|
597
|
+
'dialog.d-modal-content{border:0;padding:0;position:fixed;inset:0;width:100%;height:100%;max-width:100%;max-height:100%;background:transparent}',
|
|
598
|
+
'dialog.d-modal-content[open]{display:flex;align-items:center;justify-content:center}',
|
|
599
|
+
'dialog.d-modal-content::backdrop{background:var(--d-overlay)}',
|
|
600
|
+
'.d-modal-panel{max-width:90vw;max-height:85vh;overflow:auto;display:flex;flex-direction:column}',
|
|
601
|
+
'.d-modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--d-compound-pad) var(--d-compound-pad) 0}',
|
|
602
|
+
'.d-modal-title{font-weight:var(--d-fw-title);font-size:var(--d-text-lg)}',
|
|
603
|
+
'.d-modal-body{padding:var(--d-compound-gap) var(--d-compound-pad)}',
|
|
604
|
+
'.d-modal-body:last-child{padding-bottom:var(--d-compound-pad)}',
|
|
605
|
+
'.d-modal-footer{display:flex;justify-content:flex-end;gap:var(--d-sp-2);padding:var(--d-compound-gap) var(--d-compound-pad) var(--d-compound-pad)}',
|
|
606
|
+
'.d-modal-close,.d-drawer-close,.d-notification-close,.d-tour-close{cursor:pointer;line-height:var(--d-lh-none);background:none;border:none;font-size:var(--d-text-xl);padding:var(--d-sp-1);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}',
|
|
607
|
+
|
|
608
|
+
// ═══════════════════════════════════════════════════════════════
|
|
609
|
+
// ALERT DIALOG (confirmation modal)
|
|
610
|
+
// ═══════════════════════════════════════════════════════════════
|
|
611
|
+
'dialog.d-alertdialog{border:0;padding:0;position:fixed;inset:0;width:100%;height:100%;max-width:100%;max-height:100%;background:transparent}',
|
|
612
|
+
'dialog.d-alertdialog[open]{display:flex;align-items:center;justify-content:center}',
|
|
613
|
+
'dialog.d-alertdialog::backdrop{background:var(--d-overlay)}',
|
|
614
|
+
'.d-alertdialog-panel{max-width:420px;display:flex;flex-direction:column}',
|
|
615
|
+
'.d-alertdialog-body{padding:var(--d-compound-pad);display:flex;flex-direction:column;gap:var(--d-sp-2)}',
|
|
616
|
+
'.d-alertdialog-title{font-weight:var(--d-fw-title);font-size:var(--d-text-lg)}',
|
|
617
|
+
'.d-alertdialog-desc{font-size:var(--d-text-base);color:var(--d-muted);line-height:var(--d-lh-normal)}',
|
|
618
|
+
'.d-alertdialog-footer{display:flex;justify-content:flex-end;gap:var(--d-sp-2);padding:var(--d-compound-gap) var(--d-compound-pad) var(--d-compound-pad)}',
|
|
619
|
+
|
|
620
|
+
// ═══════════════════════════════════════════════════════════════
|
|
621
|
+
// DRAWER (native <dialog>, 4 positions)
|
|
622
|
+
// ═══════════════════════════════════════════════════════════════
|
|
623
|
+
'dialog.d-drawer{border:0;padding:0;position:fixed;inset:0;width:100%;height:100%;max-width:100%;max-height:100%;background:transparent}',
|
|
624
|
+
'dialog.d-drawer::backdrop{background:var(--d-overlay)}',
|
|
625
|
+
'.d-drawer-panel{position:absolute;display:flex;flex-direction:column;overflow:auto;outline:none}',
|
|
626
|
+
'.d-drawer-left{top:0;bottom:0;left:0}',
|
|
627
|
+
'.d-drawer-right{top:0;bottom:0;right:0}',
|
|
628
|
+
'.d-drawer-top{top:0;left:0;right:0}',
|
|
629
|
+
'.d-drawer-bottom{bottom:0;left:0;right:0;max-height:var(--d-drawer-bottom-max-h,85vh);border-top-left-radius:var(--d-radius-lg,12px);border-top-right-radius:var(--d-radius-lg,12px)}',
|
|
630
|
+
'.d-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:var(--d-compound-pad) var(--d-compound-pad) 0}',
|
|
631
|
+
'.d-drawer-title{font-weight:var(--d-fw-title);font-size:var(--d-text-lg)}',
|
|
632
|
+
'.d-drawer-body{flex:1;overflow:auto;padding:var(--d-compound-gap) var(--d-compound-pad)}',
|
|
633
|
+
'.d-drawer-body:last-child{padding-bottom:var(--d-compound-pad)}',
|
|
634
|
+
'.d-drawer-footer{display:flex;justify-content:flex-end;gap:var(--d-sp-2);padding:var(--d-compound-gap) var(--d-compound-pad) var(--d-compound-pad)}',
|
|
635
|
+
|
|
636
|
+
// ═══════════════════════════════════════════════════════════════
|
|
637
|
+
// TOOLTIP
|
|
638
|
+
// ═══════════════════════════════════════════════════════════════
|
|
639
|
+
'.d-tooltip-wrap{position:relative;display:inline-flex}',
|
|
640
|
+
'.d-tooltip{position:absolute;z-index:var(--d-z-tooltip);padding:var(--d-sp-1-5) var(--d-sp-2-5);font-size:var(--d-text-sm);line-height:var(--d-lh-normal);white-space:nowrap;pointer-events:none}',
|
|
641
|
+
'.d-tooltip-top{bottom:100%;left:50%;transform:translateX(-50%);margin-bottom:var(--d-offset-tooltip)}',
|
|
642
|
+
'.d-tooltip-bottom{top:100%;left:50%;transform:translateX(-50%);margin-top:var(--d-offset-tooltip)}',
|
|
643
|
+
'.d-tooltip-left{right:100%;top:50%;transform:translateY(-50%);margin-right:var(--d-offset-tooltip)}',
|
|
644
|
+
'.d-tooltip-right{left:100%;top:50%;transform:translateY(-50%);margin-left:var(--d-offset-tooltip)}',
|
|
645
|
+
|
|
646
|
+
// ═══════════════════════════════════════════════════════════════
|
|
647
|
+
// POPOVER
|
|
648
|
+
// ═══════════════════════════════════════════════════════════════
|
|
649
|
+
'.d-popover{position:relative;display:inline-flex}',
|
|
650
|
+
'.d-popover-content{position:absolute;z-index:var(--d-z-popover);min-width:200px;padding:var(--d-sp-3)}',
|
|
651
|
+
'.d-popover-top{bottom:100%;left:50%;transform:translateX(-50%);margin-bottom:var(--d-offset-popover)}',
|
|
652
|
+
'.d-popover-bottom{top:100%;left:50%;transform:translateX(-50%);margin-top:var(--d-offset-popover)}',
|
|
653
|
+
'.d-popover-left{right:100%;top:50%;transform:translateY(-50%);margin-right:var(--d-offset-popover)}',
|
|
654
|
+
'.d-popover-right{left:100%;top:50%;transform:translateY(-50%);margin-left:var(--d-offset-popover)}',
|
|
655
|
+
'.d-popover-align-start{left:0;transform:none}',
|
|
656
|
+
'.d-popover-align-end{left:auto;right:0;transform:none}',
|
|
657
|
+
'.d-popover-top.d-popover-align-start,.d-popover-bottom.d-popover-align-start{left:0;transform:none}',
|
|
658
|
+
'.d-popover-top.d-popover-align-end,.d-popover-bottom.d-popover-align-end{left:auto;right:0;transform:none}',
|
|
659
|
+
|
|
660
|
+
// ═══════════════════════════════════════════════════════════════
|
|
661
|
+
// HOVER CARD
|
|
662
|
+
// ═══════════════════════════════════════════════════════════════
|
|
663
|
+
'.d-hovercard{position:relative;display:inline-flex}',
|
|
664
|
+
'.d-hovercard-content{position:absolute;z-index:var(--d-z-popover);min-width:240px;padding:var(--d-sp-3);pointer-events:auto}',
|
|
665
|
+
|
|
666
|
+
// ═══════════════════════════════════════════════════════════════
|
|
667
|
+
// DROPDOWN
|
|
668
|
+
// ═══════════════════════════════════════════════════════════════
|
|
669
|
+
'.d-dropdown{position:relative;display:inline-flex}',
|
|
670
|
+
'.d-dropdown-menu{position:absolute;top:100%;left:0;z-index:var(--d-z-dropdown);min-width:180px;margin-top:var(--d-offset-menu);overflow:auto;max-height:var(--d-panel-max-h);padding:var(--d-sp-1)}',
|
|
671
|
+
'.d-dropdown-right{left:auto;right:0}',
|
|
672
|
+
'.d-dropdown-item{display:flex;align-items:center;gap:var(--d-sp-2);padding:var(--d-sp-2) var(--d-sp-3);cursor:pointer;font-size:var(--d-text-base);outline:none;border-radius:var(--d-radius-inner)}',
|
|
673
|
+
'.d-dropdown-item-disabled{opacity:var(--d-disabled-opacity);cursor:not-allowed}',
|
|
674
|
+
'.d-dropdown-item-label{flex:1}',
|
|
675
|
+
'.d-dropdown-item-icon{flex-shrink:0;width:1em;height:1em}',
|
|
676
|
+
'.d-dropdown-item-shortcut{flex-shrink:0;font-size:var(--d-text-sm);opacity:var(--d-icon-muted)}',
|
|
677
|
+
'.d-dropdown-separator{height:1px;margin:var(--d-sp-1) 0}',
|
|
678
|
+
'.d-dropdown-group-label{padding:var(--d-sp-1) var(--d-sp-3);font-size:var(--d-text-xs);font-weight:var(--d-fw-title);color:var(--d-muted);text-transform:uppercase;letter-spacing:var(--d-ls-caps)}',
|
|
679
|
+
|
|
680
|
+
// ═══════════════════════════════════════════════════════════════
|
|
681
|
+
// CONTEXT MENU
|
|
682
|
+
// ═══════════════════════════════════════════════════════════════
|
|
683
|
+
'.d-contextmenu{position:fixed;z-index:var(--d-z-popover);min-width:180px;max-height:var(--d-panel-max-h);overflow:auto;padding:var(--d-sp-1)}',
|
|
684
|
+
|
|
685
|
+
// ═══════════════════════════════════════════════════════════════
|
|
686
|
+
// COMMAND PALETTE
|
|
687
|
+
// ═══════════════════════════════════════════════════════════════
|
|
688
|
+
'dialog.d-command{border:0;padding:0;position:fixed;inset:0;width:100%;height:100%;max-width:100%;max-height:100%;background:transparent}',
|
|
689
|
+
'dialog.d-command[open]{display:flex;align-items:center;justify-content:center}',
|
|
690
|
+
'.d-command-panel{display:flex;flex-direction:column;max-height:400px;overflow:hidden;width:560px;max-width:90vw}',
|
|
691
|
+
'.d-command-input-wrap{display:flex;align-items:center;padding:var(--d-sp-2) var(--d-sp-3);gap:var(--d-sp-2)}',
|
|
692
|
+
'.d-command-input{flex:1;background:transparent;border:none;outline:none;font:inherit;font-size:var(--d-text-base)}',
|
|
693
|
+
'.d-command-icon{flex-shrink:0;opacity:var(--d-icon-muted)}',
|
|
694
|
+
'.d-command-list{flex:1;overflow:auto;padding:var(--d-sp-1)}',
|
|
695
|
+
'.d-command-group{padding:var(--d-sp-1) 0}',
|
|
696
|
+
'.d-command-group-label{padding:var(--d-sp-1) var(--d-sp-3);font-size:var(--d-text-xs);font-weight:var(--d-fw-title);color:var(--d-muted);text-transform:uppercase;letter-spacing:var(--d-ls-caps)}',
|
|
697
|
+
'.d-command-item{display:flex;align-items:center;gap:var(--d-sp-2);padding:var(--d-sp-2) var(--d-sp-3);cursor:pointer;font-size:var(--d-text-base);outline:none;border-radius:var(--d-radius-inner)}',
|
|
698
|
+
'.d-command-item-icon{flex-shrink:0;width:1em;height:1em}',
|
|
699
|
+
'.d-command-item-label{flex:1}',
|
|
700
|
+
'.d-command-item-shortcut{font-size:var(--d-text-sm);opacity:var(--d-icon-muted)}',
|
|
701
|
+
'.d-command-empty{padding:var(--d-sp-6);text-align:center;font-size:var(--d-text-sm);color:var(--d-muted)}',
|
|
702
|
+
'.d-command-separator{height:1px;margin:var(--d-sp-1) 0;background:var(--d-border)}',
|
|
703
|
+
|
|
704
|
+
// ═══════════════════════════════════════════════════════════════
|
|
705
|
+
// POPCONFIRM
|
|
706
|
+
// ═══════════════════════════════════════════════════════════════
|
|
707
|
+
'.d-popconfirm-wrap{position:relative;display:inline-flex}',
|
|
708
|
+
'.d-popconfirm{position:absolute;z-index:var(--d-z-popover);min-width:220px;padding:var(--d-sp-3);display:flex;flex-direction:column;gap:var(--d-sp-3)}',
|
|
709
|
+
'.d-popconfirm-body{display:flex;align-items:flex-start;gap:var(--d-sp-2)}',
|
|
710
|
+
'.d-popconfirm-text{display:flex;flex-direction:column;gap:var(--d-sp-1)}',
|
|
711
|
+
'.d-popconfirm-title{font-size:var(--d-text-base);font-weight:var(--d-fw-medium,500)}',
|
|
712
|
+
'.d-popconfirm-desc{font-size:var(--d-text-sm);color:var(--d-muted);line-height:var(--d-lh-normal)}',
|
|
713
|
+
'.d-popconfirm-footer{display:flex;justify-content:flex-end;gap:var(--d-sp-2)}',
|
|
714
|
+
|
|
715
|
+
// ═══════════════════════════════════════════════════════════════
|
|
716
|
+
// TABS
|
|
717
|
+
// ═══════════════════════════════════════════════════════════════
|
|
718
|
+
'.d-tabs{display:flex;flex-direction:column}',
|
|
719
|
+
'.d-tabs-list{display:flex;gap:0}',
|
|
720
|
+
'.d-tab{font:inherit;font-size:var(--d-text-base);font-weight:var(--d-fw-medium,500);padding:var(--d-sp-2-5) var(--d-sp-4);cursor:pointer;outline:none;background:transparent;border:none;white-space:nowrap}',
|
|
721
|
+
'.d-tab:focus-visible{outline:var(--d-focus-ring-width) var(--d-focus-ring-style,solid) var(--d-focus-ring-color,var(--d-ring));outline-offset:var(--d-focus-ring-offset-inset)}',
|
|
722
|
+
'.d-tabs-panel{padding:var(--d-sp-6) var(--d-sp-4) var(--d-sp-4)}',
|
|
723
|
+
'.d-tabs-vertical{flex-direction:row}',
|
|
724
|
+
'.d-tabs-vertical .d-tabs-list{flex-direction:column}',
|
|
725
|
+
'.d-tab[disabled]{cursor:not-allowed;opacity:var(--d-disabled-opacity)}',
|
|
726
|
+
'.d-tabs[data-disabled]{opacity:var(--d-disabled-opacity);pointer-events:none}',
|
|
727
|
+
'.d-tabs-sm .d-tab{padding:var(--d-sp-1-5) var(--d-sp-3);font-size:var(--d-text-sm)}',
|
|
728
|
+
'.d-tabs-lg .d-tab{padding:var(--d-sp-3) var(--d-sp-5);font-size:var(--d-text-md)}',
|
|
729
|
+
'.d-tab-closable{display:flex;align-items:center;gap:var(--d-sp-1)}',
|
|
730
|
+
'.d-tab-close{opacity:var(--d-disabled-opacity);font-size:0.75em;cursor:pointer;background:none;border:none;padding:0;color:inherit}',
|
|
731
|
+
'.d-tab-close:hover{opacity:1}',
|
|
732
|
+
'.d-tabs-panel-container{flex:1;min-width:0}',
|
|
733
|
+
'.d-tabs-vertical .d-tabs-list{min-width:max-content}',
|
|
734
|
+
|
|
735
|
+
// ═══════════════════════════════════════════════════════════════
|
|
736
|
+
// ACCORDION / COLLAPSIBLE
|
|
737
|
+
// ═══════════════════════════════════════════════════════════════
|
|
738
|
+
'.d-accordion{display:flex;flex-direction:column}',
|
|
739
|
+
'.d-accordion-item{border-bottom:1px solid var(--d-border)}',
|
|
740
|
+
'.d-accordion-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;flex:1 1 0%;font:inherit;font-size:var(--d-text-base);font-weight:var(--d-fw-medium,500);line-height:var(--d-lh-normal);padding:var(--d-sp-4) 0;cursor:pointer;outline:none;background:transparent;border:none;text-align:left;transition:all var(--d-duration-fast);color:inherit}',
|
|
741
|
+
'.d-accordion-trigger:hover{text-decoration-line:underline;text-underline-offset:4px}',
|
|
742
|
+
'.d-accordion-trigger:focus-visible{outline:var(--d-focus-ring-width) var(--d-focus-ring-style,solid) var(--d-focus-ring-color,var(--d-ring));outline-offset:var(--d-focus-ring-offset-inset)}',
|
|
743
|
+
'.d-accordion-trigger[data-disabled]{opacity:var(--d-disabled-opacity);cursor:not-allowed;pointer-events:none}',
|
|
744
|
+
'.d-accordion-icon{font-size:var(--d-text-sm);transition:transform var(--d-duration-fast);flex-shrink:0}',
|
|
745
|
+
'.d-accordion-open .d-accordion-icon{transform:rotate(180deg)}',
|
|
746
|
+
'.d-accordion-region{overflow:hidden;transition:height var(--d-duration-normal) var(--d-easing-decelerate)}',
|
|
747
|
+
'.d-accordion-content{padding-bottom:var(--d-sp-4);color:var(--d-muted-fg);font-size:var(--d-text-sm)}',
|
|
748
|
+
'.d-collapsible{display:flex;flex-direction:column}',
|
|
749
|
+
'.d-collapsible-trigger{cursor:pointer;user-select:none}',
|
|
750
|
+
'.d-collapsible-content{overflow:hidden;transition:height var(--d-duration-normal) var(--d-easing-decelerate)}',
|
|
751
|
+
|
|
752
|
+
// ═══════════════════════════════════════════════════════════════
|
|
753
|
+
// SEPARATOR / DIVIDER
|
|
754
|
+
// ═══════════════════════════════════════════════════════════════
|
|
755
|
+
'.d-separator{border:none;margin:var(--d-sp-3) 0}',
|
|
756
|
+
'hr.d-separator{height:1px;background:var(--d-border)}',
|
|
757
|
+
'.d-separator-vertical{display:inline-block;width:1px;height:1em;margin:0 var(--d-sp-2);vertical-align:middle}',
|
|
758
|
+
'div.d-separator{display:flex;align-items:center;gap:var(--d-sp-3)}',
|
|
759
|
+
'.d-separator-line{flex:1;height:1px;background:var(--d-border)}',
|
|
760
|
+
'.d-separator-label{font-size:var(--d-text-sm);white-space:nowrap}',
|
|
761
|
+
|
|
762
|
+
// ═══════════════════════════════════════════════════════════════
|
|
763
|
+
// BREADCRUMB
|
|
764
|
+
// ═══════════════════════════════════════════════════════════════
|
|
765
|
+
'.d-breadcrumb-list{display:flex;align-items:center;gap:var(--d-sp-1);list-style:none;margin:0;padding:0;flex-wrap:wrap}',
|
|
766
|
+
'.d-breadcrumb-item{display:flex;align-items:center;gap:var(--d-sp-1)}',
|
|
767
|
+
'.d-breadcrumb-link{display:inline-flex;align-items:center;gap:var(--d-sp-1);font:inherit;font-size:var(--d-text-base);line-height:var(--d-lh-normal);text-decoration:none;cursor:pointer;background:transparent;border:none;padding:0;outline:none;border-radius:var(--d-radius-inner)}',
|
|
768
|
+
'.d-breadcrumb-link:focus-visible{outline:var(--d-focus-ring-width) var(--d-focus-ring-style,solid) var(--d-focus-ring-color,var(--d-ring));outline-offset:var(--d-focus-ring-offset)}',
|
|
769
|
+
'.d-breadcrumb-link-disabled{opacity:var(--d-disabled-opacity);cursor:not-allowed;pointer-events:none}',
|
|
770
|
+
'.d-breadcrumb-separator{display:inline-flex;align-items:center;font-size:var(--d-text-sm);line-height:var(--d-lh-none)}',
|
|
771
|
+
'.d-breadcrumb-current{display:inline-flex;align-items:center;gap:var(--d-sp-1);font-size:var(--d-text-base);font-weight:var(--d-fw-medium,500);line-height:var(--d-lh-normal)}',
|
|
772
|
+
'.d-breadcrumb-icon{flex-shrink:0}',
|
|
773
|
+
'.d-breadcrumb-ellipsis{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;cursor:pointer;padding:var(--d-sp-0-5);border-radius:var(--d-radius-inner);outline:none}',
|
|
774
|
+
'.d-breadcrumb-ellipsis:focus-visible{outline:var(--d-focus-ring-width) var(--d-focus-ring-style,solid) var(--d-focus-ring-color,var(--d-ring));outline-offset:var(--d-focus-ring-offset)}',
|
|
775
|
+
'.d-breadcrumb-collapse{position:relative;display:inline-flex}',
|
|
776
|
+
'.d-breadcrumb-menu{position:absolute;top:100%;left:0;z-index:var(--d-z-dropdown);min-width:120px;margin-top:var(--d-offset-menu);overflow:auto;max-height:var(--d-panel-max-h);padding:var(--d-sp-1)}',
|
|
777
|
+
'.d-breadcrumb-sm .d-breadcrumb-link,.d-breadcrumb-sm .d-breadcrumb-current{font-size:var(--d-text-sm)}',
|
|
778
|
+
'.d-breadcrumb-sm .d-breadcrumb-separator{font-size:var(--d-text-xs)}',
|
|
779
|
+
'.d-breadcrumb-lg .d-breadcrumb-link,.d-breadcrumb-lg .d-breadcrumb-current{font-size:var(--d-text-md)}',
|
|
780
|
+
'.d-breadcrumb-lg .d-breadcrumb-list{gap:var(--d-sp-2)}',
|
|
781
|
+
'.d-breadcrumb-lg .d-breadcrumb-item{gap:var(--d-sp-2)}',
|
|
782
|
+
|
|
783
|
+
// ═══════════════════════════════════════════════════════════════
|
|
784
|
+
// PAGINATION
|
|
785
|
+
// ═══════════════════════════════════════════════════════════════
|
|
786
|
+
'.d-pagination{display:flex;align-items:center}',
|
|
787
|
+
'.d-pagination-list{display:flex;align-items:center;gap:var(--d-sp-1);list-style:none;margin:0;padding:0}',
|
|
788
|
+
'.d-pagination-btn{display:inline-flex;align-items:center;justify-content:center;min-width:2rem;height:2rem;padding:0 var(--d-sp-2);font:inherit;font-size:var(--d-text-base);cursor:pointer;outline:none;background:transparent;border:none}',
|
|
789
|
+
'.d-pagination-btn:focus-visible{outline:var(--d-focus-ring-width) var(--d-focus-ring-style,solid) var(--d-focus-ring-color,var(--d-ring));outline-offset:var(--d-focus-ring-offset)}',
|
|
790
|
+
'.d-pagination-disabled{opacity:var(--d-disabled-opacity-soft);cursor:not-allowed;pointer-events:none}',
|
|
791
|
+
'.d-pagination-ellipsis{display:inline-flex;align-items:center;justify-content:center;min-width:2rem;height:2rem;font-size:var(--d-text-base)}',
|
|
792
|
+
'.d-pagination-simple{display:flex;align-items:center;gap:var(--d-sp-2)}',
|
|
793
|
+
'.d-pagination-sm .d-pagination-btn{min-width:var(--d-field-h-sm);height:var(--d-field-h-sm);font-size:var(--d-field-text-sm)}',
|
|
794
|
+
'.d-pagination-sm .d-pagination-ellipsis{min-width:var(--d-field-h-sm);height:var(--d-field-h-sm);font-size:var(--d-field-text-sm)}',
|
|
795
|
+
'.d-pagination-lg .d-pagination-btn{min-width:var(--d-field-h-lg);height:var(--d-field-h-lg);font-size:var(--d-field-text-lg)}',
|
|
796
|
+
'.d-pagination-lg .d-pagination-ellipsis{min-width:var(--d-field-h-lg);height:var(--d-field-h-lg);font-size:var(--d-field-text-lg)}',
|
|
797
|
+
|
|
798
|
+
// ═══════════════════════════════════════════════════════════════
|
|
799
|
+
// STEPS / STEPPER
|
|
800
|
+
// ═══════════════════════════════════════════════════════════════
|
|
801
|
+
'.d-steps{display:flex;align-items:flex-start}',
|
|
802
|
+
'.d-steps-vertical{flex-direction:column;gap:var(--d-sp-2)}',
|
|
803
|
+
'.d-step{display:flex;align-items:flex-start;flex:1;gap:var(--d-sp-2)}',
|
|
804
|
+
'.d-step:last-child{flex:none}',
|
|
805
|
+
'.d-step-clickable{cursor:pointer}',
|
|
806
|
+
'.d-step-icon{display:flex;align-items:center;justify-content:center;width:var(--d-step-icon-size);height:var(--d-step-icon-size);border-radius:50%;flex-shrink:0;font-size:var(--d-text-sm);font-weight:var(--d-fw-medium,500)}',
|
|
807
|
+
'.d-step-content{display:flex;flex-direction:column;gap:var(--d-sp-1);min-width:0}',
|
|
808
|
+
'.d-step-title{font-size:var(--d-text-base);font-weight:var(--d-fw-medium,500);line-height:var(--d-step-icon-size)}',
|
|
809
|
+
'.d-step-desc{font-size:var(--d-text-sm);color:var(--d-muted);line-height:var(--d-lh-normal)}',
|
|
810
|
+
'.d-step-connector{flex:1;height:2px;align-self:center;min-width:var(--d-sp-4)}',
|
|
811
|
+
'.d-steps-vertical .d-step{flex:none;position:relative}',
|
|
812
|
+
'.d-steps-vertical .d-step-connector{position:absolute;left:calc(var(--d-step-icon-size) / 2 - 1px);top:var(--d-step-icon-size);bottom:calc(-1 * var(--d-sp-2));width:2px;height:auto;flex:none;align-self:auto;min-width:0}',
|
|
813
|
+
|
|
814
|
+
// ═══════════════════════════════════════════════════════════════
|
|
815
|
+
// SEGMENTED CONTROL
|
|
816
|
+
// ═══════════════════════════════════════════════════════════════
|
|
817
|
+
'.d-segmented{display:inline-flex;padding:var(--d-sp-0-5);border-radius:var(--d-radius-panel);gap:var(--d-sp-0-5)}',
|
|
818
|
+
'.d-segmented-item{display:inline-flex;align-items:center;justify-content:center;padding:var(--d-sp-1-5) var(--d-sp-3);font:inherit;font-size:var(--d-text-sm);font-weight:var(--d-fw-medium,500);cursor:pointer;border:none;background:none;outline:none;border-radius:var(--d-radius-inner);white-space:nowrap;transition:all var(--d-duration-fast)}',
|
|
819
|
+
'.d-segmented-item:focus-visible{outline:var(--d-focus-ring-width) var(--d-focus-ring-style,solid) var(--d-focus-ring-color,var(--d-ring));outline-offset:var(--d-focus-ring-offset)}',
|
|
820
|
+
'.d-segmented-item[aria-checked="true"]{font-weight:var(--d-fw-medium,500)}',
|
|
821
|
+
'.d-segmented-item[disabled]{cursor:not-allowed;opacity:var(--d-disabled-opacity)}',
|
|
822
|
+
'.d-segmented-sm .d-segmented-item{padding:var(--d-field-py-xs) var(--d-sp-2);font-size:var(--d-field-text-xs)}',
|
|
823
|
+
'.d-segmented-lg .d-segmented-item{padding:var(--d-sp-2) var(--d-sp-4);font-size:var(--d-field-text-md)}',
|
|
824
|
+
'.d-segmented-block{display:flex;width:100%}',
|
|
825
|
+
'.d-segmented-block>.d-segmented-item{flex:1}',
|
|
826
|
+
'.d-segmented[data-disabled]{opacity:var(--d-disabled-opacity);cursor:not-allowed;pointer-events:none}',
|
|
827
|
+
|
|
828
|
+
// ═══════════════════════════════════════════════════════════════
|
|
829
|
+
// MENU / MENUBAR / NAVIGATION MENU
|
|
830
|
+
// ═══════════════════════════════════════════════════════════════
|
|
831
|
+
'.d-menu{display:flex;flex-direction:column;min-width:180px;padding:var(--d-sp-1)}',
|
|
832
|
+
'.d-menu-item{display:flex;align-items:center;gap:var(--d-sp-2);padding:var(--d-sp-2) var(--d-sp-3);cursor:pointer;font-size:var(--d-text-base);outline:none;border:none;background:none;text-align:left;width:100%;font:inherit;border-radius:var(--d-radius-inner)}',
|
|
833
|
+
'.d-menu-item:focus-visible{outline:var(--d-focus-ring-width) var(--d-focus-ring-style,solid) var(--d-focus-ring-color,var(--d-ring));outline-offset:var(--d-focus-ring-offset-inset)}',
|
|
834
|
+
'.d-menu-item-disabled{opacity:var(--d-disabled-opacity);cursor:not-allowed}',
|
|
835
|
+
'.d-menu-item-icon{flex-shrink:0;width:1em;height:1em}',
|
|
836
|
+
'.d-menu-item-label{flex:1}',
|
|
837
|
+
'.d-menu-item-arrow{flex-shrink:0;font-size:var(--d-text-xs);opacity:var(--d-icon-muted)}',
|
|
838
|
+
'.d-menu-group-label{padding:var(--d-sp-1) var(--d-sp-3);font-size:var(--d-text-xs);font-weight:var(--d-fw-title);color:var(--d-muted)}',
|
|
839
|
+
'.d-menu-separator{height:1px;margin:var(--d-sp-1) 0;background:var(--d-border)}',
|
|
840
|
+
'.d-menu-sub{position:absolute;left:100%;top:0;z-index:var(--d-z-dropdown);min-width:180px;padding:var(--d-sp-1);margin-top:var(--d-offset-menu);margin-left:var(--d-offset-menu)}',
|
|
841
|
+
'.d-menu-sub-wrap{position:relative}',
|
|
842
|
+
'.d-menubar{display:flex;align-items:center;gap:0}',
|
|
843
|
+
'.d-menubar-wrap{position:relative;display:inline-flex}',
|
|
844
|
+
'.d-menubar-item{display:flex;align-items:center;padding:var(--d-sp-1-5) var(--d-sp-3);cursor:pointer;font:inherit;font-size:var(--d-text-base);font-weight:var(--d-fw-medium,500);background:none;border:none;outline:none}',
|
|
845
|
+
'.d-menubar-item:focus-visible{outline:var(--d-focus-ring-width) var(--d-focus-ring-style,solid) var(--d-focus-ring-color,var(--d-ring));outline-offset:var(--d-focus-ring-offset-inset)}',
|
|
846
|
+
'.d-navmenu{display:flex;align-items:center;gap:var(--d-sp-1)}',
|
|
847
|
+
'.d-navmenu-item{display:flex;align-items:center;gap:var(--d-sp-2);padding:var(--d-sp-2) var(--d-sp-3);font:inherit;font-size:var(--d-text-base);font-weight:var(--d-fw-medium,500);cursor:pointer;text-decoration:none;border:none;background:none;outline:none;white-space:nowrap}',
|
|
848
|
+
'.d-navmenu-item:focus-visible{outline:var(--d-focus-ring-width) var(--d-focus-ring-style,solid) var(--d-focus-ring-color,var(--d-ring));outline-offset:var(--d-focus-ring-offset-inset)}',
|
|
849
|
+
'.d-navmenu-content{position:absolute;top:100%;left:0;z-index:var(--d-z-dropdown);min-width:200px;padding:var(--d-sp-3);margin-top:var(--d-offset-dropdown)}',
|
|
850
|
+
|
|
851
|
+
// ═══════════════════════════════════════════════════════════════
|
|
852
|
+
// AFFIX (sticky)
|
|
853
|
+
// ═══════════════════════════════════════════════════════════════
|
|
854
|
+
'.d-affix{position:relative}',
|
|
855
|
+
'.d-affix-fixed{position:fixed;z-index:var(--d-z-sticky)}',
|
|
856
|
+
|
|
857
|
+
// ═══════════════════════════════════════════════════════════════
|
|
858
|
+
// TABLE
|
|
859
|
+
// ═══════════════════════════════════════════════════════════════
|
|
860
|
+
'.d-table-wrap{overflow-x:auto}',
|
|
861
|
+
'.d-table{width:100%;border-collapse:collapse;font-size:var(--d-text-base)}',
|
|
862
|
+
'.d-th{text-align:left;font-weight:var(--d-fw-title);padding:var(--d-sp-3)}',
|
|
863
|
+
'.d-td{padding:var(--d-sp-3)}',
|
|
864
|
+
'.d-table-compact .d-th,.d-table-compact .d-td{padding:var(--d-sp-1-5) var(--d-sp-3)}',
|
|
865
|
+
'.d-th-sortable{cursor:pointer;user-select:none}',
|
|
866
|
+
'.d-th-sort-icon{display:inline-flex;margin-left:var(--d-sp-1);font-size:var(--d-text-xs);opacity:var(--d-disabled-opacity-soft)}',
|
|
867
|
+
'.d-th-sort-active .d-th-sort-icon{opacity:1}',
|
|
868
|
+
'.d-table-expandable .d-td:first-child{padding-left:var(--d-sp-6)}',
|
|
869
|
+
'.d-table-expand-btn{background:none;border:none;cursor:pointer;padding:0;font-size:var(--d-text-sm);margin-right:var(--d-sp-2)}',
|
|
870
|
+
'.d-table-row-selected{font-weight:var(--d-fw-medium,500)}',
|
|
871
|
+
'.d-table-sticky{position:sticky;top:0;z-index:2}',
|
|
872
|
+
'.d-table-footer{padding:var(--d-sp-3);display:flex;align-items:center;justify-content:space-between}',
|
|
873
|
+
|
|
874
|
+
// ═══════════════════════════════════════════════════════════════
|
|
875
|
+
// DATATABLE
|
|
876
|
+
// ═══════════════════════════════════════════════════════════════
|
|
877
|
+
'.d-datatable{display:flex;flex-direction:column;width:100%;font-size:var(--d-text-base)}',
|
|
878
|
+
'.d-datatable-header{display:flex;align-items:center;gap:var(--d-sp-3);padding:var(--d-sp-3)}',
|
|
879
|
+
'.d-datatable-scroll{overflow:auto;flex:1}',
|
|
880
|
+
'.d-datatable-table{width:100%;border-collapse:collapse;table-layout:auto}',
|
|
881
|
+
'.d-datatable-th{text-align:left;font-weight:var(--d-fw-title,600);padding:var(--d-sp-3);position:relative;white-space:nowrap;font-size:var(--d-text-sm);letter-spacing:var(--d-ls-caps);text-transform:uppercase}',
|
|
882
|
+
'.d-datatable-th-sortable{cursor:pointer;user-select:none}',
|
|
883
|
+
'.d-datatable-th-sortable:hover{opacity:0.8}',
|
|
884
|
+
'.d-datatable-sort-icon{display:inline;margin-left:var(--d-sp-1);font-size:var(--d-text-xs);opacity:var(--d-disabled-opacity-soft)}',
|
|
885
|
+
'.d-datatable-th-sorted-asc .d-datatable-sort-icon,.d-datatable-th-sorted-desc .d-datatable-sort-icon{opacity:1}',
|
|
886
|
+
'.d-datatable-td{padding:var(--d-sp-3);vertical-align:middle}',
|
|
887
|
+
'.d-datatable-td-editing{padding:0}',
|
|
888
|
+
'.d-datatable-edit-input{width:100%;padding:var(--d-sp-2) var(--d-sp-3);border:var(--d-border-width-strong) solid var(--d-primary);background:var(--d-surface-0);color:var(--d-fg);font:inherit;font-size:var(--d-text-base);outline:none;box-sizing:border-box}',
|
|
889
|
+
'.d-datatable-row{transition:background var(--d-duration-fast,100ms) var(--d-easing-standard,ease)}',
|
|
890
|
+
'.d-datatable-hoverable .d-datatable-row:hover{background:var(--d-surface-1,rgba(0,0,0,0.03))}',
|
|
891
|
+
'.d-datatable-striped .d-datatable-row:nth-child(even){background:var(--d-surface-0,rgba(0,0,0,0.02))}',
|
|
892
|
+
'.d-datatable-row-selected{background:var(--d-selected-bg) !important;font-weight:var(--d-fw-medium,500)}',
|
|
893
|
+
'.d-datatable-row-expanded{background:var(--d-surface-1)}',
|
|
894
|
+
'.d-datatable-expand-row{background:var(--d-surface-0)}',
|
|
895
|
+
'.d-datatable-expand-row .d-datatable-td{padding:var(--d-sp-4) var(--d-sp-6)}',
|
|
896
|
+
'.d-datatable-expand-btn{background:none;border:none;cursor:pointer;padding:var(--d-sp-1);font-size:var(--d-text-sm);color:var(--d-muted-fg);line-height:var(--d-lh-none)}',
|
|
897
|
+
'.d-datatable-expand-btn:hover{color:var(--d-fg)}',
|
|
898
|
+
'.d-datatable-checkbox{cursor:pointer;width:16px;height:16px;accent-color:var(--d-primary)}',
|
|
899
|
+
'.d-datatable-sticky{position:sticky;top:0;z-index:4;background:var(--d-surface-0)}',
|
|
900
|
+
'.d-datatable-pinned-left,.d-datatable-pinned-right{position:sticky;z-index:2;background:var(--d-surface-0)}',
|
|
901
|
+
'.d-datatable-resize-handle{position:absolute;right:0;top:0;bottom:0;width:4px;cursor:col-resize;user-select:none}',
|
|
902
|
+
'.d-datatable-resize-handle:hover{background:var(--d-primary)}',
|
|
903
|
+
'.d-datatable-filter-icon{background:none;border:none;cursor:pointer;font-size:var(--d-text-xs);padding:var(--d-sp-1);color:var(--d-muted-fg);line-height:var(--d-lh-none)}',
|
|
904
|
+
'.d-datatable-filter-icon:hover,.d-datatable-filter-active{color:var(--d-primary)}',
|
|
905
|
+
'.d-datatable-filter-popup{position:absolute;top:100%;left:0;z-index:var(--d-z-dropdown,1000);padding:var(--d-sp-2);min-width:180px}',
|
|
906
|
+
'.d-datatable-filter-popup input{width:100%;padding:var(--d-sp-1-5) var(--d-sp-2);border:var(--d-border-width) solid var(--d-border);border-radius:var(--d-radius-inner,4px);font:inherit;font-size:var(--d-text-sm);background:var(--d-surface-0);color:var(--d-fg);outline:none;box-sizing:border-box}',
|
|
907
|
+
'.d-datatable-filter-popup input:focus{border-color:var(--d-primary);box-shadow:0 0 0 var(--d-focus-ring-width) var(--d-ring)}',
|
|
908
|
+
'.d-datatable-pagination{display:flex;align-items:center;justify-content:flex-end;gap:var(--d-sp-3);padding:var(--d-sp-3);font-size:var(--d-text-sm)}',
|
|
909
|
+
'.d-datatable-page-size{display:flex;align-items:center;gap:var(--d-sp-2)}',
|
|
910
|
+
'.d-datatable-page-size select{padding:var(--d-sp-1) var(--d-sp-2);border:var(--d-border-width) solid var(--d-border);border-radius:var(--d-radius-inner,4px);font:inherit;font-size:var(--d-text-sm);background:var(--d-surface-0);color:var(--d-fg);cursor:pointer}',
|
|
911
|
+
'.d-datatable-page-btn{background:none;border:var(--d-border-width) solid var(--d-border);border-radius:var(--d-radius-inner,4px);padding:var(--d-sp-1-5) var(--d-sp-3);font:inherit;font-size:var(--d-text-sm);cursor:pointer;color:var(--d-fg)}',
|
|
912
|
+
'.d-datatable-page-btn:hover:not([disabled]){background:var(--d-item-hover-bg);border-color:var(--d-border-strong)}',
|
|
913
|
+
'.d-datatable-page-btn[disabled]{opacity:var(--d-disabled-opacity-soft);cursor:not-allowed}',
|
|
914
|
+
'.d-datatable-page-info{color:var(--d-muted-fg)}',
|
|
915
|
+
'.d-datatable-empty{text-align:center}',
|
|
916
|
+
'.d-datatable-empty .d-datatable-td{padding:var(--d-sp-8);color:var(--d-muted-fg);font-style:italic}',
|
|
917
|
+
'.d-datatable-export-btn{background:none;border:var(--d-border-width) solid var(--d-border);border-radius:var(--d-radius,4px);padding:var(--d-sp-1-5) var(--d-sp-3);font:inherit;font-size:var(--d-text-sm);cursor:pointer;color:var(--d-fg);margin-left:auto}',
|
|
918
|
+
'.d-datatable-export-btn:hover{background:var(--d-item-hover-bg);border-color:var(--d-border-strong)}',
|
|
919
|
+
'@media(prefers-reduced-motion:reduce){.d-datatable-row{transition:none}}',
|
|
920
|
+
|
|
921
|
+
// ═══════════════════════════════════════════════════════════════
|
|
922
|
+
// LIST
|
|
923
|
+
// ═══════════════════════════════════════════════════════════════
|
|
924
|
+
'.d-list{display:flex;flex-direction:column}',
|
|
925
|
+
'.d-list-item{display:flex;align-items:flex-start;gap:var(--d-sp-3);padding:var(--d-sp-3)}',
|
|
926
|
+
'.d-list-item-meta{display:flex;flex-direction:column;gap:var(--d-sp-1);flex:1;min-width:0}',
|
|
927
|
+
'.d-list-item-title{font-size:var(--d-text-base);font-weight:var(--d-fw-medium,500)}',
|
|
928
|
+
'.d-list-item-desc{font-size:var(--d-text-sm);color:var(--d-muted);line-height:var(--d-lh-normal)}',
|
|
929
|
+
'.d-list-item-actions{display:flex;gap:var(--d-sp-2);align-items:center;flex-shrink:0}',
|
|
930
|
+
'.d-list-item-avatar{flex-shrink:0}',
|
|
931
|
+
'.d-list-header{padding:var(--d-sp-3);font-weight:var(--d-fw-title)}',
|
|
932
|
+
'.d-list-footer{padding:var(--d-sp-3)}',
|
|
933
|
+
'.d-list-grid{display:grid}',
|
|
934
|
+
'.d-list-loading{display:flex;justify-content:center;padding:var(--d-sp-4)}',
|
|
935
|
+
|
|
936
|
+
// ═══════════════════════════════════════════════════════════════
|
|
937
|
+
// TREE
|
|
938
|
+
// ═══════════════════════════════════════════════════════════════
|
|
939
|
+
'.d-tree{display:flex;flex-direction:column}',
|
|
940
|
+
'.d-tree-node{display:flex;flex-direction:column}',
|
|
941
|
+
'.d-tree-node-content{display:flex;align-items:center;gap:var(--d-sp-1);padding:var(--d-sp-1) 0;cursor:pointer;font-size:var(--d-text-base)}',
|
|
942
|
+
'.d-tree-node-indent{display:inline-flex;width:var(--d-tree-indent);flex-shrink:0}',
|
|
943
|
+
'.d-tree-node-switcher{display:inline-flex;align-items:center;justify-content:center;width:var(--d-tree-indent);cursor:pointer;font-size:var(--d-text-sm);transition:transform var(--d-duration-fast);background:none;border:none;padding:0}',
|
|
944
|
+
'.d-tree-node-switcher-open{transform:rotate(90deg)}',
|
|
945
|
+
'.d-tree-node-checkbox{flex-shrink:0}',
|
|
946
|
+
'.d-tree-node-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}',
|
|
947
|
+
'.d-tree-node-selected .d-tree-node-label{font-weight:var(--d-fw-medium,500)}',
|
|
948
|
+
'.d-tree-children{padding-left:var(--d-tree-indent)}',
|
|
949
|
+
'.d-tree-node-dragging{opacity:var(--d-disabled-opacity)}',
|
|
950
|
+
|
|
951
|
+
// ═══════════════════════════════════════════════════════════════
|
|
952
|
+
// AVATAR
|
|
953
|
+
// ═══════════════════════════════════════════════════════════════
|
|
954
|
+
'.d-avatar{display:inline-flex;align-items:center;justify-content:center;width:var(--d-avatar-size);height:var(--d-avatar-size);overflow:hidden;flex-shrink:0}',
|
|
955
|
+
'.d-avatar-sm{width:var(--d-avatar-size-sm);height:var(--d-avatar-size-sm);font-size:var(--d-text-xs)}',
|
|
956
|
+
'.d-avatar-lg{width:var(--d-avatar-size-lg);height:var(--d-avatar-size-lg);font-size:var(--d-text-md)}',
|
|
957
|
+
'.d-avatar-xl{width:var(--d-avatar-size-xl);height:var(--d-avatar-size-xl);font-size:var(--d-text-lg)}',
|
|
958
|
+
'.d-avatar-img{width:100%;height:100%;object-fit:cover}',
|
|
959
|
+
'.d-avatar-fallback{display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-size:var(--d-text-sm);font-weight:var(--d-fw-title)}',
|
|
960
|
+
'.d-avatar-group{display:flex}',
|
|
961
|
+
'.d-avatar-group>.d-avatar{margin-left:calc(var(--d-sp-2) * -1);outline:var(--d-border-width-strong) solid var(--d-bg)}',
|
|
962
|
+
'.d-avatar-group>.d-avatar:first-child{margin-left:0}',
|
|
963
|
+
'.d-avatar-group-count{display:inline-flex;align-items:center;justify-content:center;margin-left:calc(var(--d-sp-2) * -1);font-size:var(--d-text-xs);font-weight:var(--d-fw-title);z-index:1}',
|
|
964
|
+
|
|
965
|
+
// ═══════════════════════════════════════════════════════════════
|
|
966
|
+
// PROGRESS
|
|
967
|
+
// ═══════════════════════════════════════════════════════════════
|
|
968
|
+
'.d-progress-wrap{position:relative;width:100%;display:flex;flex-direction:column;gap:var(--d-sp-1)}',
|
|
969
|
+
'.d-progress{position:relative;width:100%;height:var(--d-progress-h);overflow:hidden}',
|
|
970
|
+
'.d-progress-sm{height:var(--d-progress-h-sm)}',
|
|
971
|
+
'.d-progress-md{height:var(--d-progress-h-md)}',
|
|
972
|
+
'.d-progress-lg{height:var(--d-progress-h-lg)}',
|
|
973
|
+
'.d-progress-bar{height:100%;transition:width var(--d-duration-normal) var(--d-easing-standard)}',
|
|
974
|
+
'.d-progress-label{font-size:var(--d-text-xs);font-weight:var(--d-fw-title);line-height:var(--d-lh-none);text-align:right}',
|
|
975
|
+
'.d-progress-md .d-progress-label,.d-progress-lg .d-progress-label{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}',
|
|
976
|
+
'.d-progress-circle{display:inline-flex;position:relative}',
|
|
977
|
+
'.d-progress-circle-label{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:var(--d-text-sm);font-weight:var(--d-fw-title)}',
|
|
978
|
+
|
|
979
|
+
// ═══════════════════════════════════════════════════════════════
|
|
980
|
+
// SKELETON
|
|
981
|
+
// ═══════════════════════════════════════════════════════════════
|
|
982
|
+
'.d-skeleton{animation:d-shimmer calc(var(--d-duration-spin) * 1.8) infinite linear;overflow:hidden}',
|
|
983
|
+
'.d-skeleton-text{height:var(--d-text-base);border-radius:var(--d-radius-inner)}',
|
|
984
|
+
'.d-skeleton-rect{border-radius:var(--d-radius-inner)}',
|
|
985
|
+
'.d-skeleton-circle{border-radius:50%}',
|
|
986
|
+
'.d-skeleton-group{display:flex;flex-direction:column;gap:var(--d-sp-2)}',
|
|
987
|
+
'.d-skeleton-avatar{border-radius:50%;flex-shrink:0}',
|
|
988
|
+
'.d-skeleton-button{height:var(--d-field-h-sm);border-radius:var(--d-radius);width:6rem}',
|
|
989
|
+
'.d-skeleton-input{height:var(--d-field-h-md);border-radius:var(--d-radius);width:100%}',
|
|
990
|
+
|
|
991
|
+
// ═══════════════════════════════════════════════════════════════
|
|
992
|
+
// ALERT
|
|
993
|
+
// ═══════════════════════════════════════════════════════════════
|
|
994
|
+
'.d-alert{display:flex;align-items:flex-start;gap:var(--d-sp-3);padding:var(--d-sp-3) var(--d-sp-4);font-size:var(--d-text-base)}',
|
|
995
|
+
'.d-alert-icon{flex-shrink:0;font-size:var(--d-text-lg);line-height:var(--d-lh-none)}',
|
|
996
|
+
'.d-alert-body{flex:1;min-width:0}',
|
|
997
|
+
'.d-alert-title{font-weight:var(--d-fw-medium,500);margin-bottom:var(--d-sp-1)}',
|
|
998
|
+
'.d-alert-desc{font-size:var(--d-text-sm);line-height:var(--d-lh-normal);color:var(--d-muted)}',
|
|
999
|
+
'.d-alert-dismiss{flex-shrink:0;background:transparent;border:none;cursor:pointer;font-size:var(--d-text-lg);line-height:var(--d-lh-none);padding:0}',
|
|
1000
|
+
'.d-alert-closable{padding-right:var(--d-sp-8)}',
|
|
1001
|
+
|
|
1002
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1003
|
+
// TOAST / MESSAGE / NOTIFICATION
|
|
1004
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1005
|
+
'.d-toast-container{position:fixed;z-index:var(--d-z-toast);display:flex;flex-direction:column;gap:var(--d-sp-2);pointer-events:none;max-width:360px}',
|
|
1006
|
+
'.d-toast-top-right{top:var(--d-sp-4);right:var(--d-sp-4)}',
|
|
1007
|
+
'.d-toast-top-left{top:var(--d-sp-4);left:var(--d-sp-4)}',
|
|
1008
|
+
'.d-toast-top-center{top:var(--d-sp-4);left:50%;transform:translateX(-50%)}',
|
|
1009
|
+
'.d-toast-bottom-right{bottom:var(--d-sp-4);right:var(--d-sp-4)}',
|
|
1010
|
+
'.d-toast-bottom-left{bottom:var(--d-sp-4);left:var(--d-sp-4)}',
|
|
1011
|
+
'.d-toast-bottom-center{bottom:var(--d-sp-4);left:50%;transform:translateX(-50%)}',
|
|
1012
|
+
'.d-toast{display:flex;align-items:flex-start;gap:var(--d-sp-2);padding:var(--d-sp-3) var(--d-sp-4);font-size:var(--d-text-base);pointer-events:auto;animation:d-slidein-t var(--d-duration-fast) var(--d-easing-standard)}',
|
|
1013
|
+
'.d-toast-message{flex:1}',
|
|
1014
|
+
'.d-toast-close{flex-shrink:0;background:transparent;border:none;cursor:pointer;font-size:var(--d-text-md);line-height:var(--d-lh-none);padding:0}',
|
|
1015
|
+
'.d-toast-exit{opacity:0;transform:translateY(calc(var(--d-slide-distance) * -1));transition:all var(--d-duration-fast) var(--d-easing-standard)}',
|
|
1016
|
+
// Notification (stacked notification system)
|
|
1017
|
+
'.d-notification-container{position:fixed;z-index:var(--d-z-toast);display:flex;flex-direction:column;gap:var(--d-sp-2);pointer-events:none;max-width:400px}',
|
|
1018
|
+
'.d-notification-top-right{top:var(--d-sp-4);right:var(--d-sp-4)}',
|
|
1019
|
+
'.d-notification-top-left{top:var(--d-sp-4);left:var(--d-sp-4)}',
|
|
1020
|
+
'.d-notification-bottom-right{bottom:var(--d-sp-4);right:var(--d-sp-4);flex-direction:column-reverse}',
|
|
1021
|
+
'.d-notification-bottom-left{bottom:var(--d-sp-4);left:var(--d-sp-4);flex-direction:column-reverse}',
|
|
1022
|
+
'.d-notification{display:flex;align-items:flex-start;gap:var(--d-sp-3);padding:var(--d-sp-3) var(--d-sp-4);min-width:320px;max-width:400px;pointer-events:auto;animation:d-slidein-t var(--d-duration-fast) var(--d-easing-standard)}',
|
|
1023
|
+
'.d-notification-icon{flex-shrink:0;font-size:var(--d-text-lg);line-height:var(--d-lh-none)}',
|
|
1024
|
+
'.d-notification-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--d-sp-2)}',
|
|
1025
|
+
'.d-notification-title{font-weight:var(--d-fw-medium,500)}',
|
|
1026
|
+
'.d-notification-desc{font-size:var(--d-text-sm);color:var(--d-muted);line-height:var(--d-lh-normal)}',
|
|
1027
|
+
'.d-notification-action{display:flex;gap:var(--d-sp-2)}',
|
|
1028
|
+
'.d-notification-exit{opacity:0;transform:translateY(calc(var(--d-slide-distance) * -1));transition:all var(--d-duration-fast) var(--d-easing-standard)}',
|
|
1029
|
+
// Message (inline centered toast)
|
|
1030
|
+
'.d-message-container{position:fixed;z-index:var(--d-z-toast);top:var(--d-sp-4);left:50%;transform:translateX(-50%);display:flex;flex-direction:column;gap:var(--d-sp-2);pointer-events:none;align-items:center}',
|
|
1031
|
+
'.d-message{display:inline-flex;align-items:center;gap:var(--d-sp-2);padding:var(--d-sp-2) var(--d-sp-4);font-size:var(--d-text-base);pointer-events:auto;animation:d-slidein-b var(--d-duration-fast) var(--d-easing-standard);white-space:nowrap}',
|
|
1032
|
+
|
|
1033
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1034
|
+
// RESULT (success/error/404 pages)
|
|
1035
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1036
|
+
'.d-result{display:flex;flex-direction:column;align-items:center;padding:var(--d-sp-12) var(--d-sp-4);text-align:center;gap:var(--d-sp-3)}',
|
|
1037
|
+
'.d-result-icon{font-size:3rem;line-height:var(--d-lh-none)}',
|
|
1038
|
+
'.d-result-title{font-size:var(--d-text-xl);font-weight:var(--d-fw-title)}',
|
|
1039
|
+
'.d-result-desc{font-size:var(--d-text-base);color:var(--d-muted);max-width:480px;line-height:var(--d-lh-normal)}',
|
|
1040
|
+
'.d-result-actions{display:flex;gap:var(--d-sp-2)}',
|
|
1041
|
+
|
|
1042
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1043
|
+
// DESCRIPTIONS (key-value pairs)
|
|
1044
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1045
|
+
'.d-descriptions{display:flex;flex-direction:column;gap:var(--d-sp-3)}',
|
|
1046
|
+
'.d-descriptions-title{font-weight:var(--d-fw-title);font-size:var(--d-text-lg)}',
|
|
1047
|
+
'.d-descriptions-table{width:100%;border-collapse:collapse}',
|
|
1048
|
+
'.d-descriptions-label{padding:var(--d-sp-2) var(--d-sp-3);font-size:var(--d-text-sm);font-weight:var(--d-fw-medium,500);color:var(--d-muted);white-space:nowrap;vertical-align:top}',
|
|
1049
|
+
'.d-descriptions-content{padding:var(--d-sp-2) var(--d-sp-3);font-size:var(--d-text-base)}',
|
|
1050
|
+
'.d-descriptions-horizontal .d-descriptions-label{text-align:right;width:30%}',
|
|
1051
|
+
|
|
1052
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1053
|
+
// STATISTIC
|
|
1054
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1055
|
+
'.d-statistic{display:flex;flex-direction:column;gap:var(--d-sp-1)}',
|
|
1056
|
+
'.d-statistic-label{font-size:var(--d-text-sm);color:var(--d-muted)}',
|
|
1057
|
+
'.d-statistic-value{font-size:var(--d-text-3xl);font-weight:var(--d-fw-heading);line-height:var(--d-lh-tight);letter-spacing:var(--d-ls-heading)}',
|
|
1058
|
+
'.d-statistic-prefix,.d-statistic-suffix{font-size:var(--d-text-lg);vertical-align:baseline}',
|
|
1059
|
+
'.d-statistic-trend{display:inline-flex;align-items:center;gap:var(--d-sp-1);font-size:var(--d-text-sm);font-weight:var(--d-fw-medium,500)}',
|
|
1060
|
+
'.d-statistic-countdown{font-variant-numeric:tabular-nums}',
|
|
1061
|
+
|
|
1062
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1063
|
+
// CALENDAR
|
|
1064
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1065
|
+
'.d-calendar{display:flex;flex-direction:column}',
|
|
1066
|
+
'.d-calendar-header{display:flex;align-items:center;justify-content:space-between;padding:var(--d-sp-3)}',
|
|
1067
|
+
'.d-calendar-title{font-weight:var(--d-fw-title);font-size:var(--d-text-lg)}',
|
|
1068
|
+
'.d-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);text-align:center}',
|
|
1069
|
+
'.d-calendar-weekday{font-size:var(--d-text-xs);font-weight:var(--d-fw-medium,500);padding:var(--d-sp-2);color:var(--d-muted)}',
|
|
1070
|
+
'.d-calendar-cell{padding:var(--d-sp-1);min-height:4rem;cursor:pointer;border:none;background:none;font:inherit;text-align:left;vertical-align:top;position:relative}',
|
|
1071
|
+
'.d-calendar-cell-content{font-size:var(--d-text-sm)}',
|
|
1072
|
+
'.d-calendar-mini .d-calendar-cell{min-height:auto;text-align:center;padding:var(--d-sp-1)}',
|
|
1073
|
+
|
|
1074
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1075
|
+
// CAROUSEL
|
|
1076
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1077
|
+
'.d-carousel{position:relative;overflow:hidden}',
|
|
1078
|
+
'.d-carousel-track{display:flex;transition:transform var(--d-duration-normal) var(--d-easing-standard)}',
|
|
1079
|
+
'.d-carousel-slide{flex:0 0 100%;min-width:0}',
|
|
1080
|
+
'.d-carousel-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:1;background:none;border:none;cursor:pointer;padding:var(--d-sp-2);font-size:var(--d-text-xl);opacity:0.7}',
|
|
1081
|
+
'.d-carousel-nav:hover{opacity:1}',
|
|
1082
|
+
'.d-carousel-prev{left:var(--d-sp-2)}',
|
|
1083
|
+
'.d-carousel-next{right:var(--d-sp-2)}',
|
|
1084
|
+
'.d-carousel-dots{display:flex;justify-content:center;gap:var(--d-sp-2);padding:var(--d-sp-3)}',
|
|
1085
|
+
'.d-carousel-dot{width:var(--d-carousel-dot);height:var(--d-carousel-dot);border-radius:50%;cursor:pointer;border:none;padding:0;opacity:var(--d-disabled-opacity-soft)}',
|
|
1086
|
+
'.d-carousel-dot-active{opacity:1}',
|
|
1087
|
+
|
|
1088
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1089
|
+
// EMPTY (no data placeholder)
|
|
1090
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1091
|
+
'.d-empty{display:flex;flex-direction:column;align-items:center;padding:var(--d-sp-8) var(--d-sp-4);text-align:center;gap:var(--d-sp-2)}',
|
|
1092
|
+
'.d-empty-icon{font-size:2.5rem;opacity:var(--d-disabled-opacity-soft);line-height:var(--d-lh-none)}',
|
|
1093
|
+
'.d-empty-desc{font-size:var(--d-text-sm);color:var(--d-muted);line-height:var(--d-lh-normal)}',
|
|
1094
|
+
|
|
1095
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1096
|
+
// PLACEHOLDER
|
|
1097
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1098
|
+
'.d-placeholder{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;overflow:hidden;aspect-ratio:16/9}',
|
|
1099
|
+
'.d-placeholder-avatar{border-radius:50%;aspect-ratio:1/1;width:auto}',
|
|
1100
|
+
'.d-placeholder-icon{aspect-ratio:1/1;width:auto}',
|
|
1101
|
+
'.d-placeholder-watermark{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none}',
|
|
1102
|
+
'.d-placeholder-watermark>svg{width:40%;height:40%;opacity:0.08}',
|
|
1103
|
+
'.d-placeholder-label{position:relative;z-index:1;font-size:var(--d-text-sm);font-weight:var(--d-fw-medium)}',
|
|
1104
|
+
'.d-placeholder-content{position:relative;z-index:1}',
|
|
1105
|
+
'.d-placeholder-animate{background-size:200% 100%;animation:d-shimmer calc(var(--d-duration-spin) * 1.8) infinite linear}',
|
|
1106
|
+
|
|
1107
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1108
|
+
// IMAGE (lightbox)
|
|
1109
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1110
|
+
'.d-image{display:inline-block;overflow:hidden;position:relative}',
|
|
1111
|
+
'.d-image>img{display:block;width:100%;height:100%;object-fit:cover}',
|
|
1112
|
+
'.d-image-preview{cursor:zoom-in}',
|
|
1113
|
+
'.d-image-overlay{position:fixed;inset:0;z-index:var(--d-z-modal);background:var(--d-overlay);display:flex;align-items:center;justify-content:center;cursor:zoom-out}',
|
|
1114
|
+
'.d-image-overlay>img{max-width:90vw;max-height:90vh;object-fit:contain}',
|
|
1115
|
+
'.d-image-fallback{display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-size:var(--d-text-sm);color:var(--d-muted)}',
|
|
1116
|
+
|
|
1117
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1118
|
+
// TIMELINE
|
|
1119
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1120
|
+
'.d-timeline{display:flex;flex-direction:column}',
|
|
1121
|
+
'.d-timeline-item{display:flex;gap:var(--d-sp-3);position:relative;padding-bottom:var(--d-sp-4)}',
|
|
1122
|
+
'.d-timeline-item:last-child{padding-bottom:0}',
|
|
1123
|
+
'.d-timeline-dot{display:flex;align-items:center;justify-content:center;width:var(--d-timeline-dot);height:var(--d-timeline-dot);border-radius:50%;flex-shrink:0;margin-top:var(--d-sp-1);z-index:1}',
|
|
1124
|
+
'.d-timeline-dot-lg{width:var(--d-timeline-dot-lg);height:var(--d-timeline-dot-lg);margin-top:0}',
|
|
1125
|
+
'.d-timeline-line{position:absolute;left:calc((var(--d-timeline-dot) - var(--d-timeline-line-w)) / 2);top:calc(var(--d-timeline-dot) + var(--d-sp-1));bottom:0;width:var(--d-timeline-line-w)}',
|
|
1126
|
+
'.d-timeline-item:last-child .d-timeline-line{display:none}',
|
|
1127
|
+
'.d-timeline-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--d-sp-1)}',
|
|
1128
|
+
'.d-timeline-label{font-size:var(--d-text-xs);color:var(--d-muted)}',
|
|
1129
|
+
'.d-timeline-alternate .d-timeline-item:nth-child(even){flex-direction:row-reverse;text-align:right}',
|
|
1130
|
+
|
|
1131
|
+
// Timeline: right-aligned mode
|
|
1132
|
+
'.d-timeline-right .d-timeline-item{flex-direction:row-reverse}',
|
|
1133
|
+
'.d-timeline-right .d-timeline-line{left:auto;right:calc((var(--d-timeline-dot) - var(--d-timeline-line-w)) / 2)}',
|
|
1134
|
+
|
|
1135
|
+
// Timeline: custom per-item positioning
|
|
1136
|
+
'.d-timeline-custom .d-timeline-item-right{flex-direction:row-reverse;text-align:right}',
|
|
1137
|
+
'.d-timeline-custom .d-timeline-item-right .d-timeline-line{left:auto;right:calc((var(--d-timeline-dot) - var(--d-timeline-line-w)) / 2)}',
|
|
1138
|
+
|
|
1139
|
+
// Timeline: horizontal layout
|
|
1140
|
+
'.d-timeline-horizontal{flex-direction:row;overflow-x:auto}',
|
|
1141
|
+
'.d-timeline-horizontal .d-timeline-item{flex-direction:column;padding-bottom:0;padding-right:var(--d-sp-4);min-width:var(--d-timeline-h-min-w)}',
|
|
1142
|
+
'.d-timeline-horizontal .d-timeline-item:last-child{padding-right:0}',
|
|
1143
|
+
'.d-timeline-horizontal .d-timeline-dot{margin-top:0}',
|
|
1144
|
+
'.d-timeline-horizontal .d-timeline-line{left:calc(var(--d-timeline-dot) + var(--d-sp-1));top:calc((var(--d-timeline-dot) - var(--d-timeline-line-w)) / 2);bottom:auto;right:0;width:auto;height:var(--d-timeline-line-w)}',
|
|
1145
|
+
'.d-timeline-horizontal .d-timeline-content{padding-top:var(--d-sp-2)}',
|
|
1146
|
+
|
|
1147
|
+
// Timeline: opposite label for alternate mode
|
|
1148
|
+
'.d-timeline-opposite{font-size:var(--d-text-xs);color:var(--d-muted);flex:1;min-width:0}',
|
|
1149
|
+
'.d-timeline-alternate .d-timeline-item:nth-child(odd) .d-timeline-opposite{text-align:right}',
|
|
1150
|
+
'.d-timeline-alternate .d-timeline-item:nth-child(even) .d-timeline-opposite{text-align:left}',
|
|
1151
|
+
|
|
1152
|
+
// Timeline: clickable + disabled items
|
|
1153
|
+
'.d-timeline-item-clickable{cursor:pointer}',
|
|
1154
|
+
'.d-timeline-item-clickable:hover .d-timeline-dot{transform:scale(1.2);transition:transform var(--d-duration-fast)}',
|
|
1155
|
+
'.d-timeline-item-disabled{opacity:var(--d-disabled-opacity);pointer-events:none}',
|
|
1156
|
+
|
|
1157
|
+
// Timeline: pending dot (pulsing)
|
|
1158
|
+
'.d-timeline-dot-pending{animation:d-timeline-pulse 1.5s ease-in-out infinite}',
|
|
1159
|
+
'@keyframes d-timeline-pulse{0%,100%{opacity:0.3;transform:scale(1)}50%{opacity:0.7;transform:scale(1.2)}}',
|
|
1160
|
+
|
|
1161
|
+
// Timeline: collapsible
|
|
1162
|
+
'.d-timeline-collapse-trigger{cursor:pointer;font-size:var(--d-text-xs);color:var(--d-primary);display:inline-flex;align-items:center;gap:var(--d-sp-1);user-select:none}',
|
|
1163
|
+
'.d-timeline-collapse-region{overflow:hidden;transition:max-height var(--d-duration-normal) var(--d-easing-standard)}',
|
|
1164
|
+
|
|
1165
|
+
// Timeline: skeleton loading
|
|
1166
|
+
'.d-timeline-skeleton .d-timeline-dot{background:var(--d-surface-1);animation:d-shimmer calc(var(--d-duration-spin)*1.8) infinite linear}',
|
|
1167
|
+
'.d-timeline-skeleton .d-timeline-content{display:flex;flex-direction:column;gap:var(--d-sp-2)}',
|
|
1168
|
+
'.d-timeline-skeleton .d-timeline-skel-bar{height:0.75em;border-radius:var(--d-radius-sm);background:var(--d-surface-1);animation:d-shimmer calc(var(--d-duration-spin)*1.8) infinite linear}',
|
|
1169
|
+
|
|
1170
|
+
// Timeline: data-color presets
|
|
1171
|
+
'.d-timeline-dot[data-color="blue"]{background-color:var(--d-info)}',
|
|
1172
|
+
'.d-timeline-dot[data-color="green"]{background-color:var(--d-success)}',
|
|
1173
|
+
'.d-timeline-dot[data-color="red"]{background-color:var(--d-error)}',
|
|
1174
|
+
'.d-timeline-dot[data-color="gray"]{background-color:var(--d-muted)}',
|
|
1175
|
+
|
|
1176
|
+
// Timeline: size small
|
|
1177
|
+
'.d-timeline-sm .d-timeline-dot{width:var(--d-timeline-sm-dot);height:var(--d-timeline-sm-dot);margin-top:var(--d-sp-1-5)}',
|
|
1178
|
+
'.d-timeline-sm .d-timeline-dot-lg{width:var(--d-timeline-sm-dot-lg);height:var(--d-timeline-sm-dot-lg)}',
|
|
1179
|
+
'.d-timeline-sm .d-timeline-line{left:calc((var(--d-timeline-sm-dot) - var(--d-timeline-line-w)) / 2);top:calc(var(--d-timeline-sm-dot) + var(--d-sp-1-5));width:var(--d-timeline-line-w)}',
|
|
1180
|
+
'.d-timeline-sm .d-timeline-item{gap:var(--d-sp-2);padding-bottom:var(--d-sp-2)}',
|
|
1181
|
+
'.d-timeline-sm .d-timeline-label{font-size:var(--d-text-xs)}',
|
|
1182
|
+
|
|
1183
|
+
// Timeline: size large
|
|
1184
|
+
'.d-timeline-lg .d-timeline-dot{width:var(--d-timeline-lg-dot);height:var(--d-timeline-lg-dot);margin-top:0;font-size:var(--d-text-sm)}',
|
|
1185
|
+
'.d-timeline-lg .d-timeline-dot-lg{width:var(--d-timeline-lg-dot-lg);height:var(--d-timeline-lg-dot-lg)}',
|
|
1186
|
+
'.d-timeline-lg .d-timeline-line{left:calc((var(--d-timeline-lg-dot) - var(--d-timeline-line-w)) / 2);top:calc(var(--d-timeline-lg-dot));width:var(--d-timeline-line-w)}',
|
|
1187
|
+
'.d-timeline-lg .d-timeline-item{gap:var(--d-sp-4);padding-bottom:var(--d-sp-6)}',
|
|
1188
|
+
'.d-timeline-lg .d-timeline-content{padding-top:var(--d-sp-1)}',
|
|
1189
|
+
|
|
1190
|
+
// Timeline: active dot
|
|
1191
|
+
'.d-timeline-dot-active{transform:scale(1.3);box-shadow:0 0 12px currentColor;transition:transform var(--d-duration-fast),box-shadow var(--d-duration-fast)}',
|
|
1192
|
+
|
|
1193
|
+
// Timeline: gradient line
|
|
1194
|
+
'.d-timeline-gradient .d-timeline-line{background:linear-gradient(to bottom,var(--d-primary),var(--d-accent)) !important}',
|
|
1195
|
+
'.d-timeline-horizontal.d-timeline-gradient .d-timeline-line{background:linear-gradient(to right,var(--d-primary),var(--d-accent)) !important}',
|
|
1196
|
+
|
|
1197
|
+
// Timeline: glass dots
|
|
1198
|
+
'.d-timeline-glass .d-timeline-dot{backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,0.1)}',
|
|
1199
|
+
|
|
1200
|
+
// Timeline: status dot colors
|
|
1201
|
+
'.d-timeline-dot[data-status="success"]{background-color:var(--d-success)}',
|
|
1202
|
+
'.d-timeline-dot[data-status="warning"]{background-color:var(--d-warning)}',
|
|
1203
|
+
'.d-timeline-dot[data-status="error"]{background-color:var(--d-error)}',
|
|
1204
|
+
'.d-timeline-dot[data-status="info"]{background-color:var(--d-info)}',
|
|
1205
|
+
|
|
1206
|
+
// Timeline: tag label
|
|
1207
|
+
'.d-timeline-tag{font-size:var(--d-text-xs);font-weight:var(--d-fw-medium,500);padding:var(--d-sp-0-5) var(--d-sp-1-5);border-radius:var(--d-radius-full);display:inline-flex;align-items:center}',
|
|
1208
|
+
|
|
1209
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1210
|
+
// COMMENT
|
|
1211
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1212
|
+
'.d-comment{display:flex;flex-direction:column;gap:var(--d-sp-3)}',
|
|
1213
|
+
'.d-comment-inner{display:flex;gap:var(--d-sp-3)}',
|
|
1214
|
+
'.d-comment-avatar{flex-shrink:0}',
|
|
1215
|
+
'.d-comment-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--d-sp-1)}',
|
|
1216
|
+
'.d-comment-header{display:flex;align-items:center;gap:var(--d-sp-2)}',
|
|
1217
|
+
'.d-comment-author{font-size:var(--d-text-sm);font-weight:var(--d-fw-medium)}',
|
|
1218
|
+
'.d-comment-time{font-size:var(--d-text-xs)}',
|
|
1219
|
+
'.d-comment-content{font-size:var(--d-text-base)}',
|
|
1220
|
+
'.d-comment-actions{display:flex;align-items:center;gap:var(--d-sp-3)}',
|
|
1221
|
+
'.d-comment-action{display:inline-flex;align-items:center;gap:var(--d-sp-1);cursor:pointer;border:0;background:none;padding:0;font-size:var(--d-text-xs);font-family:inherit;transition:color var(--d-duration-fast)}',
|
|
1222
|
+
'.d-comment-nested{padding-left:var(--d-sp-6);border-left:2px solid var(--d-border)}',
|
|
1223
|
+
'.d-comment-editor{display:flex;flex-direction:column;gap:var(--d-sp-2);margin-top:var(--d-sp-2)}',
|
|
1224
|
+
'.d-comment-editor-actions{display:flex;gap:var(--d-sp-2)}',
|
|
1225
|
+
'.d-comment-bordered{border:var(--d-border-width) var(--d-border-style) var(--d-border);border-radius:var(--d-radius-panel);padding:var(--d-sp-4)}',
|
|
1226
|
+
'.d-comment-minimal .d-comment-inner{gap:var(--d-sp-2)}',
|
|
1227
|
+
'.d-comment-minimal .d-comment-body{gap:0}',
|
|
1228
|
+
'.d-comment-minimal .d-comment-nested{padding-left:var(--d-sp-4);border-left:0}',
|
|
1229
|
+
|
|
1230
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1231
|
+
// QRCODE
|
|
1232
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1233
|
+
'.d-qrcode{display:inline-flex;align-items:center;justify-content:center;position:relative}',
|
|
1234
|
+
'.d-qrcode canvas,.d-qrcode svg{display:block}',
|
|
1235
|
+
'.d-qrcode-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);border-radius:var(--d-radius-sm);overflow:hidden}',
|
|
1236
|
+
'.d-qrcode-bordered{border:var(--d-border-width) var(--d-border-style) var(--d-border);border-radius:var(--d-radius-lg);padding:var(--d-sp-3)}',
|
|
1237
|
+
'.d-qrcode-status{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;border-radius:inherit}',
|
|
1238
|
+
'.d-qrcode-expired canvas,.d-qrcode-expired svg{filter:blur(3px);opacity:0.4}',
|
|
1239
|
+
'.d-qrcode-loading canvas,.d-qrcode-loading svg{opacity:0.3}',
|
|
1240
|
+
'.d-qrcode-scanned canvas,.d-qrcode-scanned svg{opacity:0.3}',
|
|
1241
|
+
|
|
1242
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1243
|
+
// KBD (keyboard shortcut)
|
|
1244
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1245
|
+
'.d-kbd{display:inline-flex;align-items:center;justify-content:center;padding:0.125rem var(--d-sp-1-5);font-family:var(--d-font-mono);font-size:0.75em;line-height:var(--d-lh-none);border-radius:var(--d-radius-sm);white-space:nowrap;vertical-align:baseline}',
|
|
1246
|
+
'.d-kbd-group{display:inline-flex;align-items:center;gap:var(--d-sp-1)}',
|
|
1247
|
+
'.d-kbd-separator{font-size:0.75em;opacity:var(--d-icon-muted)}',
|
|
1248
|
+
|
|
1249
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1250
|
+
// TYPOGRAPHY
|
|
1251
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1252
|
+
'.d-text{margin:0}',
|
|
1253
|
+
'.d-text-secondary{color:var(--d-muted)}',
|
|
1254
|
+
'.d-text-success{color:var(--d-success)}',
|
|
1255
|
+
'.d-text-warning{color:var(--d-warning)}',
|
|
1256
|
+
'.d-text-danger{color:var(--d-error)}',
|
|
1257
|
+
'.d-text-disabled{opacity:var(--d-disabled-opacity);cursor:not-allowed;user-select:none}',
|
|
1258
|
+
'.d-text-mark{padding:0 0.125em}',
|
|
1259
|
+
'.d-text-code{font-family:var(--d-font-mono);font-size:0.875em;padding:0.125em 0.375em;border-radius:var(--d-radius-sm)}',
|
|
1260
|
+
'.d-text-keyboard{font-family:var(--d-font-mono);font-size:0.875em}',
|
|
1261
|
+
'.d-text-underline{text-decoration:underline}',
|
|
1262
|
+
'.d-text-strikethrough{text-decoration:line-through}',
|
|
1263
|
+
'.d-text-strong{font-weight:var(--d-fw-heading)}',
|
|
1264
|
+
'.d-text-italic{font-style:italic}',
|
|
1265
|
+
'.d-title{margin:0;font-weight:var(--d-fw-heading);letter-spacing:var(--d-ls-heading);line-height:var(--d-lh-tight)}',
|
|
1266
|
+
'.d-title-1{font-size:var(--d-text-4xl)}',
|
|
1267
|
+
'.d-title-2{font-size:var(--d-text-3xl)}',
|
|
1268
|
+
'.d-title-3{font-size:var(--d-text-2xl)}',
|
|
1269
|
+
'.d-title-4{font-size:var(--d-text-xl)}',
|
|
1270
|
+
'.d-title-5{font-size:var(--d-text-lg)}',
|
|
1271
|
+
'.d-paragraph{margin:0;font-size:var(--d-text-base);line-height:var(--d-lh-relaxed)}',
|
|
1272
|
+
'.d-link{color:var(--d-primary);text-decoration:none;cursor:pointer}',
|
|
1273
|
+
'.d-link:hover{text-decoration:underline}',
|
|
1274
|
+
'.d-blockquote{margin:0;padding-left:var(--d-sp-4);font-style:italic;line-height:var(--d-lh-relaxed)}',
|
|
1275
|
+
|
|
1276
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1277
|
+
// SPACE / FLEX (layout utility components)
|
|
1278
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1279
|
+
'.d-space{display:flex;gap:var(--d-sp-2)}',
|
|
1280
|
+
'.d-space-vertical{flex-direction:column}',
|
|
1281
|
+
'.d-space-wrap{flex-wrap:wrap}',
|
|
1282
|
+
|
|
1283
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1284
|
+
// ASPECT RATIO
|
|
1285
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1286
|
+
'.d-aspect{position:relative;width:100%}',
|
|
1287
|
+
'.d-aspect>*{position:absolute;inset:0;width:100%;height:100%}',
|
|
1288
|
+
|
|
1289
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1290
|
+
// RESIZABLE (split panes)
|
|
1291
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1292
|
+
'.d-resizable{display:flex;overflow:hidden;position:relative}',
|
|
1293
|
+
'.d-resizable-vertical{flex-direction:column}',
|
|
1294
|
+
'.d-resizable-panel{overflow:auto;min-width:0;min-height:0}',
|
|
1295
|
+
'.d-resizable-handle{flex-shrink:0;display:flex;align-items:center;justify-content:center;cursor:col-resize;user-select:none;width:8px}',
|
|
1296
|
+
'.d-resizable-handle-vertical{cursor:row-resize;height:8px;width:auto}',
|
|
1297
|
+
'.d-resizable-handle-bar{width:4px;height:20px;border-radius:var(--d-radius-sm);opacity:var(--d-disabled-opacity-soft)}',
|
|
1298
|
+
'.d-resizable-handle-vertical .d-resizable-handle-bar{width:20px;height:4px}',
|
|
1299
|
+
'.d-resizable-handle:hover .d-resizable-handle-bar{opacity:var(--d-icon-muted)}',
|
|
1300
|
+
|
|
1301
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1302
|
+
// SCROLL AREA
|
|
1303
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1304
|
+
'.d-scrollarea{position:relative;overflow:hidden}',
|
|
1305
|
+
'.d-scrollarea-viewport{width:100%;height:100%;overflow:auto;scrollbar-width:thin}',
|
|
1306
|
+
'.d-scrollarea-viewport::-webkit-scrollbar{width:var(--d-scrollbar-w);height:var(--d-scrollbar-w)}',
|
|
1307
|
+
'.d-scrollarea-viewport::-webkit-scrollbar-thumb{border-radius:var(--d-radius-full)}',
|
|
1308
|
+
|
|
1309
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1310
|
+
// WATERMARK
|
|
1311
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1312
|
+
'.d-watermark{position:relative}',
|
|
1313
|
+
'.d-watermark-canvas{position:absolute;inset:0;pointer-events:none;z-index:10}',
|
|
1314
|
+
|
|
1315
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1316
|
+
// TOUR
|
|
1317
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1318
|
+
'.d-tour-overlay{position:fixed;inset:0;z-index:var(--d-z-modal);pointer-events:none}',
|
|
1319
|
+
'.d-tour-highlight{position:fixed;z-index:calc(var(--d-z-modal) + 1);box-shadow:0 0 0 9999px var(--d-overlay);border-radius:var(--d-radius-panel);pointer-events:none}',
|
|
1320
|
+
'.d-tour-popover{position:fixed;z-index:calc(var(--d-z-modal) + 2);min-width:280px;max-width:400px;padding:var(--d-sp-4);pointer-events:auto;display:flex;flex-direction:column;gap:var(--d-sp-3)}',
|
|
1321
|
+
'.d-tour-popover>.d-tour-close{position:absolute;top:var(--d-sp-2);right:var(--d-sp-2)}',
|
|
1322
|
+
'.d-tour-body{display:flex;flex-direction:column;gap:var(--d-sp-2)}',
|
|
1323
|
+
'.d-tour-title{font-weight:var(--d-fw-title);font-size:var(--d-text-base)}',
|
|
1324
|
+
'.d-tour-desc{font-size:var(--d-text-sm);color:var(--d-muted);line-height:var(--d-lh-normal)}',
|
|
1325
|
+
'.d-tour-footer{display:flex;align-items:center;justify-content:space-between}',
|
|
1326
|
+
'.d-tour-steps{font-size:var(--d-text-xs);color:var(--d-muted)}',
|
|
1327
|
+
'.d-tour-actions{display:flex;gap:var(--d-sp-2)}',
|
|
1328
|
+
|
|
1329
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1330
|
+
// FLOAT BUTTON (FAB)
|
|
1331
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1332
|
+
'.d-float-btn{position:fixed;z-index:var(--d-z-sticky);display:flex;align-items:center;justify-content:center;width:var(--d-float-btn-size);height:var(--d-float-btn-size);border-radius:50%;cursor:pointer;border:none;font-size:var(--d-text-xl);box-shadow:var(--d-elevation-2)}',
|
|
1333
|
+
'.d-float-btn:focus-visible{outline:var(--d-focus-ring-width) var(--d-focus-ring-style,solid) var(--d-focus-ring-color,var(--d-ring));outline-offset:var(--d-focus-ring-offset)}',
|
|
1334
|
+
'.d-float-btn-group{position:fixed;z-index:var(--d-z-sticky);display:flex;flex-direction:column-reverse;gap:var(--d-sp-2)}',
|
|
1335
|
+
'.d-float-btn-group .d-float-btn{position:relative}',
|
|
1336
|
+
'.d-float-btn-badge{position:absolute;top:-4px;right:-4px}',
|
|
1337
|
+
|
|
1338
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1339
|
+
// SHARED OPTION (used by Select, Combobox, Command, Dropdown, etc.)
|
|
1340
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1341
|
+
'.d-option{padding:var(--d-sp-2) var(--d-sp-3);cursor:pointer;font-size:var(--d-text-base);outline:none}',
|
|
1342
|
+
'.d-option:hover{background:var(--d-item-hover-bg)}',
|
|
1343
|
+
'.d-option-active{background:var(--d-item-hover-bg)}',
|
|
1344
|
+
'.d-option-disabled{opacity:var(--d-disabled-opacity);cursor:not-allowed}',
|
|
1345
|
+
'.d-option-selected{font-weight:var(--d-fw-medium,500)}',
|
|
1346
|
+
|
|
1347
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1348
|
+
// DISCLOSURE REGION (shared by Accordion, Collapsible, Tree)
|
|
1349
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1350
|
+
'.d-disclosure-region{transition:height var(--d-duration-normal) var(--d-easing-decelerate);overflow:hidden}',
|
|
1351
|
+
|
|
1352
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1353
|
+
// DATE RANGE PICKER
|
|
1354
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1355
|
+
'.d-daterange{position:relative;display:inline-flex;flex-direction:column}',
|
|
1356
|
+
'.d-daterange-panel{position:absolute;top:100%;left:0;z-index:var(--d-z-dropdown);margin-top:var(--d-offset-dropdown);display:flex;gap:0}',
|
|
1357
|
+
'.d-daterange-calendars{display:flex;gap:var(--d-sp-2)}',
|
|
1358
|
+
'.d-daterange-calendar{padding:var(--d-sp-3);min-width:280px}',
|
|
1359
|
+
'.d-daterange-presets{display:flex;flex-direction:column;gap:var(--d-sp-1);padding:var(--d-sp-3);border-right:var(--d-border-width) solid var(--d-border);min-width:140px}',
|
|
1360
|
+
'.d-daterange-preset{padding:var(--d-sp-1-5) var(--d-sp-2);cursor:pointer;font-size:var(--d-text-sm);border:none;background:none;font:inherit;text-align:left;border-radius:var(--d-radius-inner);white-space:nowrap}',
|
|
1361
|
+
'.d-daterange-preset:hover{background:var(--d-item-hover-bg)}',
|
|
1362
|
+
'.d-daterange-preset:focus-visible{outline:var(--d-focus-ring-width) var(--d-focus-ring-style,solid) var(--d-focus-ring-color,var(--d-ring));outline-offset:var(--d-focus-ring-offset-inset)}',
|
|
1363
|
+
'.d-datepicker-day-in-range{background:var(--d-selected-bg);border-radius:0}',
|
|
1364
|
+
'.d-datepicker-day-range-start{border-radius:var(--d-radius-inner) 0 0 var(--d-radius-inner)}',
|
|
1365
|
+
'.d-datepicker-day-range-end{border-radius:0 var(--d-radius-inner) var(--d-radius-inner) 0}',
|
|
1366
|
+
|
|
1367
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1368
|
+
// TIME RANGE PICKER
|
|
1369
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1370
|
+
'.d-timerange{position:relative;display:inline-flex;flex-direction:column}',
|
|
1371
|
+
'.d-timerange-panel{position:absolute;top:100%;left:0;z-index:var(--d-z-dropdown);margin-top:var(--d-offset-dropdown);display:flex;flex-direction:column;gap:0;padding:var(--d-sp-2);overflow:hidden}',
|
|
1372
|
+
'.d-timerange-row{display:flex;align-items:stretch}',
|
|
1373
|
+
'.d-timerange-section{display:flex;flex-direction:column;align-items:center}',
|
|
1374
|
+
'.d-timerange-label{font-size:var(--d-text-xs);font-weight:var(--d-fw-medium,500);padding:var(--d-sp-1-5);color:var(--d-muted)}',
|
|
1375
|
+
'.d-timerange-columns{display:flex;gap:0}',
|
|
1376
|
+
'.d-timerange-divider{display:flex;align-items:center;padding:0 var(--d-sp-2);font-size:var(--d-text-sm);color:var(--d-muted)}',
|
|
1377
|
+
'.d-timerange-error{font-size:var(--d-text-xs);color:var(--d-error);padding:var(--d-sp-1) var(--d-sp-2)}',
|
|
1378
|
+
'.d-timerange-error:empty{display:none}',
|
|
1379
|
+
|
|
1380
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1381
|
+
// RANGE SLIDER
|
|
1382
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1383
|
+
'.d-rangeslider{position:relative;display:flex;align-items:center;width:100%;height:32px;cursor:pointer;touch-action:none;user-select:none}',
|
|
1384
|
+
'.d-rangeslider[data-disabled]{opacity:var(--d-disabled-opacity);cursor:not-allowed;pointer-events:none}',
|
|
1385
|
+
'.d-rangeslider-track{position:absolute;left:0;right:0;height:var(--d-slider-track-h);border-radius:var(--d-radius-full);background:var(--d-surface-1)}',
|
|
1386
|
+
'.d-rangeslider-fill{position:absolute;height:var(--d-slider-track-h);border-radius:var(--d-radius-full);background:var(--d-primary)}',
|
|
1387
|
+
'.d-rangeslider-thumb{position:absolute;width:var(--d-rangeslider-thumb);height:var(--d-rangeslider-thumb);border-radius:50%;background:var(--d-primary);transform:translate(-50%,-50%);top:50%;cursor:grab;outline:none;z-index:1}',
|
|
1388
|
+
'.d-rangeslider-thumb:focus-visible{outline:var(--d-focus-ring-width) var(--d-focus-ring-style,solid) var(--d-focus-ring-color,var(--d-ring));outline-offset:var(--d-focus-ring-offset)}',
|
|
1389
|
+
'.d-rangeslider-thumb:active{cursor:grabbing}',
|
|
1390
|
+
'.d-rangeslider-tooltip{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);margin-bottom:var(--d-offset-tooltip);font-size:var(--d-text-xs);white-space:nowrap;padding:var(--d-sp-1);border-radius:var(--d-radius-panel);pointer-events:none}',
|
|
1391
|
+
|
|
1392
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1393
|
+
// TREE SELECT
|
|
1394
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1395
|
+
'.d-treeselect{position:relative;display:inline-flex;flex-direction:column}',
|
|
1396
|
+
'.d-treeselect-trigger{display:flex;align-items:center;padding:var(--d-sp-2) var(--d-sp-3)}',
|
|
1397
|
+
'.d-treeselect-display{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}',
|
|
1398
|
+
'.d-treeselect-panel{position:absolute;top:100%;left:0;z-index:var(--d-z-dropdown);margin-top:var(--d-offset-dropdown);min-width:240px;max-height:var(--d-panel-max-h);overflow:auto}',
|
|
1399
|
+
'.d-treeselect-panel .d-tree{padding:var(--d-sp-1) 0}',
|
|
1400
|
+
'.d-treeselect-panel .d-tree-node-content{padding:var(--d-sp-1) var(--d-sp-2)}',
|
|
1401
|
+
'.d-treeselect-search{display:block;width:100%;border:none;background:transparent;outline:none;font:inherit;padding:var(--d-sp-2) var(--d-sp-3);border-bottom:var(--d-border-width) solid var(--d-border)}',
|
|
1402
|
+
'.d-treeselect-tags{display:flex;flex-wrap:wrap;gap:var(--d-sp-1);padding:var(--d-sp-1) var(--d-sp-2)}',
|
|
1403
|
+
'.d-treeselect-tag{display:inline-flex;align-items:center;gap:var(--d-sp-1);font-size:var(--d-text-xs);padding:var(--d-sp-1) var(--d-sp-1-5);border-radius:var(--d-radius)}',
|
|
1404
|
+
'.d-treeselect-tag-remove{cursor:pointer;background:none;border:none;padding:0;font-size:0.75em;opacity:var(--d-icon-muted);line-height:var(--d-lh-none)}',
|
|
1405
|
+
'.d-treeselect-tag-remove:hover{opacity:1}',
|
|
1406
|
+
|
|
1407
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1408
|
+
// NAVIGATION MENU (horizontal nav with dropdowns)
|
|
1409
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1410
|
+
'.d-navmenu-list{display:flex;align-items:center;gap:0;list-style:none;margin:0;padding:0}',
|
|
1411
|
+
'.d-navmenu-trigger{position:relative}',
|
|
1412
|
+
'.d-navmenu-link{display:flex;align-items:center;gap:var(--d-sp-2);padding:var(--d-sp-2) var(--d-sp-3);font-size:var(--d-text-sm);text-decoration:none;cursor:pointer;border-radius:var(--d-radius-inner);outline:none}',
|
|
1413
|
+
'.d-navmenu-link:hover{background:var(--d-item-hover-bg)}',
|
|
1414
|
+
'.d-navmenu-link:focus-visible{outline:var(--d-focus-ring-width) var(--d-focus-ring-style,solid) var(--d-focus-ring-color,var(--d-ring));outline-offset:var(--d-focus-ring-offset-inset)}',
|
|
1415
|
+
'.d-navmenu-link-highlight{outline:none}',
|
|
1416
|
+
'.d-navmenu-link-desc{font-size:var(--d-text-xs);color:var(--d-muted);line-height:var(--d-lh-normal)}',
|
|
1417
|
+
'.d-navmenu-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--d-sp-1)}',
|
|
1418
|
+
|
|
1419
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1420
|
+
// SPLITTER (resizable panels)
|
|
1421
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1422
|
+
'.d-splitter{display:flex;width:100%;height:100%;overflow:hidden}',
|
|
1423
|
+
'.d-splitter-vertical{flex-direction:column}',
|
|
1424
|
+
'.d-splitter-panel{overflow:auto;flex-shrink:0}',
|
|
1425
|
+
'.d-splitter-handle{display:flex;align-items:center;justify-content:center;flex-shrink:0;background:var(--d-surface-1);cursor:col-resize;user-select:none;touch-action:none}',
|
|
1426
|
+
'.d-splitter-handle-h{width:4px;cursor:col-resize}',
|
|
1427
|
+
'.d-splitter-handle-v{height:4px;cursor:row-resize}',
|
|
1428
|
+
'.d-splitter-handle:hover{background:var(--d-item-active-bg)}',
|
|
1429
|
+
'.d-splitter-handle:focus-visible{outline:var(--d-focus-ring-width) var(--d-focus-ring-style,solid) var(--d-focus-ring-color,var(--d-ring));outline-offset:var(--d-focus-ring-offset-inset)}',
|
|
1430
|
+
'.d-splitter-handle-dot{width:4px;height:24px;border-radius:2px;background:var(--d-border-strong);pointer-events:none}',
|
|
1431
|
+
'.d-splitter-handle-v .d-splitter-handle-dot{width:24px;height:4px}',
|
|
1432
|
+
|
|
1433
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1434
|
+
// BACK TOP
|
|
1435
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1436
|
+
'.d-backtop{position:fixed;bottom:var(--d-sp-8);right:var(--d-sp-8);z-index:var(--d-z-sticky);display:flex;align-items:center;justify-content:center;width:var(--d-backtop-size);height:var(--d-backtop-size);border-radius:50%;cursor:pointer;border:none;font-size:var(--d-text-lg);box-shadow:var(--d-elevation-2);transition:opacity var(--d-duration-fast) var(--d-easing-standard),transform var(--d-duration-fast) var(--d-easing-standard)}',
|
|
1437
|
+
'.d-backtop:focus-visible{outline:var(--d-focus-ring-width) var(--d-focus-ring-style,solid) var(--d-focus-ring-color,var(--d-ring));outline-offset:var(--d-focus-ring-offset)}',
|
|
1438
|
+
'.d-backtop-hidden{opacity:0;pointer-events:none;transform:translateY(var(--d-slide-distance))}',
|
|
1439
|
+
'.d-backtop-visible{opacity:1;pointer-events:auto;transform:translateY(0)}',
|
|
1440
|
+
|
|
1441
|
+
// Route outlet (View Transitions API)
|
|
1442
|
+
'd-route{display:block;view-transition-name:d-route;contain:layout}',
|
|
1443
|
+
|
|
1444
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1445
|
+
// PROSE (vertical rhythm for content-heavy sections)
|
|
1446
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1447
|
+
'.d-prose{font-size:var(--d-text-base);line-height:var(--d-lh-relaxed);color:var(--d-fg)}',
|
|
1448
|
+
'.d-prose>*+*{margin-top:var(--d-sp-4)}',
|
|
1449
|
+
'.d-prose>*:first-child{margin-top:0}',
|
|
1450
|
+
'.d-prose h1{font-size:var(--d-text-4xl);font-weight:var(--d-fw-heading);line-height:var(--d-lh-tight);letter-spacing:var(--d-ls-heading);margin-top:var(--d-sp-12);margin-bottom:var(--d-sp-4)}',
|
|
1451
|
+
'.d-prose h2{font-size:var(--d-text-3xl);font-weight:var(--d-fw-heading);line-height:var(--d-lh-tight);letter-spacing:var(--d-ls-heading);margin-top:var(--d-sp-10);margin-bottom:var(--d-sp-3)}',
|
|
1452
|
+
'.d-prose h3{font-size:var(--d-text-2xl);font-weight:var(--d-fw-heading);line-height:var(--d-lh-snug);letter-spacing:var(--d-ls-heading);margin-top:var(--d-sp-8);margin-bottom:var(--d-sp-3)}',
|
|
1453
|
+
'.d-prose h4{font-size:var(--d-text-xl);font-weight:var(--d-fw-title);line-height:var(--d-lh-snug);margin-top:var(--d-sp-6);margin-bottom:var(--d-sp-2)}',
|
|
1454
|
+
'.d-prose p{margin:0}',
|
|
1455
|
+
'.d-prose ul,.d-prose ol{padding-left:var(--d-sp-6);margin:0}',
|
|
1456
|
+
'.d-prose li{margin-top:var(--d-sp-1)}',
|
|
1457
|
+
'.d-prose li>p{margin:0}',
|
|
1458
|
+
'.d-prose blockquote{border-left:3px solid var(--d-primary);padding-left:var(--d-sp-4);margin-left:0;margin-right:0;font-style:italic;color:var(--d-muted-fg)}',
|
|
1459
|
+
'.d-prose pre{padding:var(--d-sp-4);overflow-x:auto;font-family:var(--d-font-mono);font-size:var(--d-text-sm);line-height:var(--d-lh-normal);border-radius:var(--d-radius-panel)}',
|
|
1460
|
+
'.d-prose code{font-family:var(--d-font-mono);font-size:0.9em;padding:var(--d-sp-1) var(--d-sp-1-5);border-radius:var(--d-radius-sm,4px)}',
|
|
1461
|
+
'.d-prose pre code{padding:0;border-radius:0;font-size:inherit}',
|
|
1462
|
+
'.d-prose img{max-width:100%;height:auto;border-radius:var(--d-radius-panel)}',
|
|
1463
|
+
'.d-prose hr{border:none;height:1px;background:var(--d-border);margin:var(--d-sp-8) 0}',
|
|
1464
|
+
'.d-prose a{color:var(--d-primary);text-decoration:underline}',
|
|
1465
|
+
'.d-prose a:hover{color:var(--d-primary-hover)}',
|
|
1466
|
+
'.d-prose table{width:100%;border-collapse:collapse}',
|
|
1467
|
+
'.d-prose th,.d-prose td{padding:var(--d-sp-2) var(--d-sp-3);text-align:left;border-bottom:var(--d-border-width) solid var(--d-border)}',
|
|
1468
|
+
'.d-prose th{font-weight:var(--d-fw-title)}',
|
|
1469
|
+
|
|
1470
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1471
|
+
// SPACE-Y / SPACE-X (child spacing utilities)
|
|
1472
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1473
|
+
'.d-spacey-1>*+*{margin-top:0.25rem}','.d-spacey-2>*+*{margin-top:0.5rem}','.d-spacey-3>*+*{margin-top:0.75rem}',
|
|
1474
|
+
'.d-spacey-4>*+*{margin-top:1rem}','.d-spacey-5>*+*{margin-top:1.25rem}','.d-spacey-6>*+*{margin-top:1.5rem}',
|
|
1475
|
+
'.d-spacey-8>*+*{margin-top:2rem}','.d-spacey-10>*+*{margin-top:2.5rem}','.d-spacey-12>*+*{margin-top:3rem}',
|
|
1476
|
+
'.d-spacey-14>*+*{margin-top:3.5rem}','.d-spacey-16>*+*{margin-top:4rem}','.d-spacey-20>*+*{margin-top:5rem}',
|
|
1477
|
+
'.d-spacey-24>*+*{margin-top:6rem}',
|
|
1478
|
+
'.d-spacex-1>*+*{margin-left:0.25rem}','.d-spacex-2>*+*{margin-left:0.5rem}','.d-spacex-3>*+*{margin-left:0.75rem}',
|
|
1479
|
+
'.d-spacex-4>*+*{margin-left:1rem}','.d-spacex-5>*+*{margin-left:1.25rem}','.d-spacex-6>*+*{margin-left:1.5rem}',
|
|
1480
|
+
'.d-spacex-8>*+*{margin-left:2rem}','.d-spacex-10>*+*{margin-left:2.5rem}','.d-spacex-12>*+*{margin-left:3rem}',
|
|
1481
|
+
'.d-spacex-14>*+*{margin-left:3.5rem}','.d-spacex-16>*+*{margin-left:4rem}','.d-spacex-20>*+*{margin-left:5rem}',
|
|
1482
|
+
'.d-spacex-24>*+*{margin-left:6rem}',
|
|
1483
|
+
|
|
1484
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1485
|
+
// DIVIDE (border between stacked children)
|
|
1486
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1487
|
+
'.d-dividey>*+*{border-top:var(--d-border-width) solid var(--d-border)}',
|
|
1488
|
+
'.d-dividex>*+*{border-left:var(--d-border-width) solid var(--d-border)}',
|
|
1489
|
+
'.d-dividey-strong>*+*{border-top:var(--d-border-width) solid var(--d-border-strong)}',
|
|
1490
|
+
'.d-dividex-strong>*+*{border-left:var(--d-border-width) solid var(--d-border-strong)}',
|
|
1491
|
+
|
|
1492
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1493
|
+
// BANNER (full-width announcement bar)
|
|
1494
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1495
|
+
'.d-banner{display:flex;align-items:center;gap:var(--d-sp-3);padding:var(--d-sp-2-5) var(--d-sp-4);width:100%;font-size:var(--d-text-sm);line-height:var(--d-lh-normal)}',
|
|
1496
|
+
'.d-banner-sticky-top{position:sticky;top:0;z-index:var(--d-z-sticky)}',
|
|
1497
|
+
'.d-banner-sticky-bottom{position:sticky;bottom:0;z-index:var(--d-z-sticky)}',
|
|
1498
|
+
'.d-banner-icon{flex-shrink:0;font-size:var(--d-text-md)}',
|
|
1499
|
+
'.d-banner-body{flex:1;min-width:0}',
|
|
1500
|
+
'.d-banner-action{flex-shrink:0}',
|
|
1501
|
+
'.d-banner-dismiss{background:none;border:none;cursor:pointer;padding:var(--d-sp-1);font-size:var(--d-text-lg);line-height:var(--d-lh-none);opacity:var(--d-icon-muted);flex-shrink:0}',
|
|
1502
|
+
'.d-banner-dismiss:hover{opacity:1}',
|
|
1503
|
+
'.d-banner-dismiss:focus-visible{outline:var(--d-focus-ring-width) var(--d-focus-ring-style,solid) var(--d-focus-ring-color,var(--d-ring));outline-offset:var(--d-focus-ring-offset)}',
|
|
1504
|
+
|
|
1505
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1506
|
+
// MASKED INPUT (inherits d-input styling)
|
|
1507
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1508
|
+
'.d-masked-input{font-family:var(--d-font-mono);letter-spacing:var(--d-ls-caps)}',
|
|
1509
|
+
|
|
1510
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1511
|
+
// CODE BLOCK
|
|
1512
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1513
|
+
'.d-codeblock{position:relative;border-radius:var(--d-radius-panel);overflow:hidden;background:var(--d-surface-1);color:var(--d-surface-1-fg);border:var(--d-border-width) solid var(--d-border)}',
|
|
1514
|
+
'.d-codeblock-header{display:flex;align-items:center;justify-content:space-between;padding:var(--d-sp-2) var(--d-sp-3);font-size:var(--d-text-xs);gap:var(--d-sp-2);background:var(--d-surface-2);border-bottom:var(--d-border-width) solid var(--d-border);color:var(--d-surface-2-fg)}',
|
|
1515
|
+
'.d-codeblock-lang{opacity:var(--d-icon-muted);text-transform:uppercase;font-weight:var(--d-fw-medium,500);letter-spacing:var(--d-ls-caps)}',
|
|
1516
|
+
'.d-codeblock-copy{background:none;border:none;cursor:pointer;font:inherit;font-size:var(--d-text-xs);padding:var(--d-sp-1) var(--d-sp-2);border-radius:var(--d-radius-inner);opacity:var(--d-icon-muted)}',
|
|
1517
|
+
'.d-codeblock-copy:hover{opacity:1;background:var(--d-surface-2)}',
|
|
1518
|
+
'.d-codeblock-copy:focus-visible{outline:var(--d-focus-ring-width) var(--d-focus-ring-style,solid) var(--d-focus-ring-color,var(--d-ring));outline-offset:var(--d-focus-ring-offset)}',
|
|
1519
|
+
'.d-codeblock-pre{margin:0;padding:var(--d-sp-4);overflow-x:auto;font-family:var(--d-font-mono);font-size:var(--d-text-sm);line-height:var(--d-lh-normal);display:flex;gap:var(--d-sp-4)}',
|
|
1520
|
+
'.d-codeblock-gutter{display:flex;flex-direction:column;text-align:right;user-select:none;opacity:var(--d-disabled-opacity-soft);flex-shrink:0;min-width:2ch}',
|
|
1521
|
+
'.d-codeblock-ln{display:block}',
|
|
1522
|
+
'.d-codeblock-code{flex:1;min-width:0;white-space:pre;tab-size:2}',
|
|
1523
|
+
|
|
1524
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1525
|
+
// SORTABLE LIST
|
|
1526
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1527
|
+
'.d-sortable{display:flex;flex-direction:column;gap:0;position:relative}',
|
|
1528
|
+
'.d-sortable-h{flex-direction:row}',
|
|
1529
|
+
'.d-sortable-item{position:relative;transition:transform var(--d-duration-fast,150ms) var(--d-easing-standard,ease)}',
|
|
1530
|
+
'.d-sortable-dragging{opacity:var(--d-disabled-opacity);z-index:1}',
|
|
1531
|
+
'.d-sortable-handle{cursor:grab;display:inline-flex;align-items:center;justify-content:center;padding:var(--d-sp-1);font-size:var(--d-text-lg);opacity:var(--d-disabled-opacity-soft);user-select:none;touch-action:none}',
|
|
1532
|
+
'.d-sortable-handle:hover{opacity:0.7}',
|
|
1533
|
+
'.d-sortable-handle:active{cursor:grabbing}',
|
|
1534
|
+
'.d-sortable-indicator{height:2px;background:var(--d-primary);border-radius:1px;flex-shrink:0}',
|
|
1535
|
+
'.d-sortable-h .d-sortable-indicator{width:2px;height:auto}',
|
|
1536
|
+
'.d-sortable-active .d-sortable-item{transition:none}',
|
|
1537
|
+
|
|
1538
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1539
|
+
// DATETIME PICKER
|
|
1540
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1541
|
+
'.d-datetimepicker{position:relative;display:inline-flex;flex-direction:column}',
|
|
1542
|
+
'.d-datetimepicker-panel{position:absolute;top:100%;left:0;z-index:var(--d-z-dropdown);margin-top:var(--d-offset-dropdown);display:flex;flex-direction:column;min-width:280px}',
|
|
1543
|
+
'.d-datetimepicker-date{padding:var(--d-sp-3)}',
|
|
1544
|
+
'.d-datetimepicker-time{padding:var(--d-sp-2) var(--d-sp-3);border-top:var(--d-border-width) solid var(--d-border);display:flex;flex-direction:column;gap:var(--d-sp-2)}',
|
|
1545
|
+
'.d-datetimepicker-time-label{font-size:var(--d-text-xs);font-weight:var(--d-fw-medium,500);color:var(--d-muted)}',
|
|
1546
|
+
'.d-datetimepicker-time-row{display:flex;align-items:center;gap:var(--d-sp-1)}',
|
|
1547
|
+
'.d-datetimepicker-spinner{width:3rem;text-align:center;font-family:var(--d-font-mono);font-size:var(--d-text-sm);padding:var(--d-sp-1);border:var(--d-border-width) solid var(--d-border);border-radius:var(--d-radius-inner);background:transparent;color:inherit;outline:none}',
|
|
1548
|
+
'.d-datetimepicker-spinner:focus-visible{outline:var(--d-focus-ring-width) var(--d-focus-ring-style,solid) var(--d-focus-ring-color,var(--d-ring));outline-offset:var(--d-focus-ring-offset-inset)}',
|
|
1549
|
+
'.d-datetimepicker-sep{font-size:var(--d-text-sm);color:var(--d-muted);font-weight:var(--d-fw-medium,500)}',
|
|
1550
|
+
'.d-datetimepicker-ampm{font-size:var(--d-text-xs);padding:var(--d-sp-1) var(--d-sp-2);border:var(--d-border-width) solid var(--d-border);border-radius:var(--d-radius-inner);background:transparent;color:inherit;cursor:pointer;font-weight:var(--d-fw-medium,500)}',
|
|
1551
|
+
'.d-datetimepicker-ampm:hover{background:var(--d-item-hover-bg)}',
|
|
1552
|
+
'.d-datetimepicker-now{font-size:var(--d-text-xs);color:var(--d-primary);background:none;border:none;cursor:pointer;padding:0;font:inherit;text-align:left}',
|
|
1553
|
+
'.d-datetimepicker-now:hover{text-decoration:underline}',
|
|
1554
|
+
'.d-datetimepicker-footer{display:flex;justify-content:flex-end;padding:var(--d-sp-2) var(--d-sp-3);border-top:var(--d-border-width) solid var(--d-border)}',
|
|
1555
|
+
|
|
1556
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1557
|
+
// SHELL (configurable layout system)
|
|
1558
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1559
|
+
'.d-shell{display:grid;height:100vh;width:100%;overflow:hidden;transition:grid-template-columns var(--d-duration-normal,200ms) var(--d-easing-standard,ease)}',
|
|
1560
|
+
'.d-shell-header{grid-area:header;display:flex;align-items:center;gap:var(--d-sp-4);padding:0 var(--d-sp-6);min-height:var(--d-shell-header-h,52px);z-index:var(--d-z-sticky,1100);overflow:hidden}',
|
|
1561
|
+
'.d-shell-header-sticky{position:sticky;top:0}',
|
|
1562
|
+
'.d-shell-nav{grid-area:nav;display:flex;flex-direction:column;gap:var(--d-sp-1);padding:var(--d-sp-3);overflow-y:auto;overflow-x:hidden;transition:width var(--d-duration-normal,200ms) var(--d-easing-standard,ease),padding var(--d-duration-normal,200ms) var(--d-easing-standard,ease)}',
|
|
1563
|
+
'.d-shell-nav-hidden .d-shell-nav{padding:0;overflow:hidden}',
|
|
1564
|
+
'.d-shell-nav-rail .d-shell-nav{padding:var(--d-sp-2);align-items:center}',
|
|
1565
|
+
'.d-shell-nav-inline{display:flex;align-items:center;gap:var(--d-sp-4);flex:1;justify-content:center}',
|
|
1566
|
+
'.d-shell-body{grid-area:body;overflow:auto;display:flex;flex-direction:column;min-height:0}',
|
|
1567
|
+
'.d-shell-footer{grid-area:footer;display:flex;align-items:center;gap:var(--d-sp-4);padding:0 var(--d-sp-6);min-height:var(--d-shell-footer-h,auto)}',
|
|
1568
|
+
'.d-shell-aside{grid-area:aside;display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;padding:var(--d-sp-3)}',
|
|
1569
|
+
|
|
1570
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1571
|
+
// REDUCED MOTION
|
|
1572
|
+
// ═══════════════════════════════════════════════════════════════
|
|
1573
|
+
'@media(prefers-reduced-motion:reduce){*{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important}}',
|
|
1574
|
+
|
|
1575
|
+
// Scrollbar defaults (overridable per style)
|
|
1576
|
+
'::-webkit-scrollbar{width:var(--d-scrollbar-w);height:var(--d-scrollbar-w)}',
|
|
1577
|
+
'::-webkit-scrollbar-track{background:var(--d-scrollbar-track)}',
|
|
1578
|
+
'::-webkit-scrollbar-thumb{background:var(--d-scrollbar-thumb);border-radius:var(--d-radius-full)}',
|
|
1579
|
+
'::-webkit-scrollbar-thumb:hover{background:var(--d-scrollbar-thumb-hover)}'
|
|
1580
|
+
].join('');
|
|
1581
|
+
|
|
1582
|
+
export function injectBase() {
|
|
1583
|
+
if (injected) return;
|
|
1584
|
+
if (typeof document === 'undefined') return;
|
|
1585
|
+
injected = true;
|
|
1586
|
+
let el = document.querySelector('[data-decantr-base]');
|
|
1587
|
+
if (!el) {
|
|
1588
|
+
el = document.createElement('style');
|
|
1589
|
+
el.setAttribute('data-decantr-base', '');
|
|
1590
|
+
document.head.appendChild(el);
|
|
1591
|
+
}
|
|
1592
|
+
el.textContent = `@layer d.base{${BASE_CSS}}`;
|
|
1593
|
+
}
|
|
1594
|
+
|
|
1595
|
+
/**
|
|
1596
|
+
* Merge class names, filtering falsy values.
|
|
1597
|
+
* @param {...(string|false|null|undefined)} classes
|
|
1598
|
+
* @returns {string}
|
|
1599
|
+
*/
|
|
1600
|
+
export function cx(...classes) {
|
|
1601
|
+
return classes.filter(Boolean).join(' ');
|
|
1602
|
+
}
|
|
1603
|
+
|
|
1604
|
+
export function resetBase() {
|
|
1605
|
+
injected = false;
|
|
1606
|
+
}
|
|
1607
|
+
|
|
1608
|
+
/**
|
|
1609
|
+
* Toggle a boolean attribute reactively.
|
|
1610
|
+
* @param {HTMLElement} el
|
|
1611
|
+
* @param {boolean|Function} prop
|
|
1612
|
+
* @param {string} attr
|
|
1613
|
+
*/
|
|
1614
|
+
export function reactiveAttr(el, prop, attr) {
|
|
1615
|
+
if (typeof prop === 'function') {
|
|
1616
|
+
createEffect(() => { prop() ? el.setAttribute(attr, '') : el.removeAttribute(attr); });
|
|
1617
|
+
} else if (prop) {
|
|
1618
|
+
el.setAttribute(attr, '');
|
|
1619
|
+
}
|
|
1620
|
+
}
|
|
1621
|
+
|
|
1622
|
+
/**
|
|
1623
|
+
* Toggle a CSS class reactively.
|
|
1624
|
+
* @param {HTMLElement} el
|
|
1625
|
+
* @param {boolean|Function} prop
|
|
1626
|
+
* @param {string} baseClass
|
|
1627
|
+
* @param {string} activeClass
|
|
1628
|
+
*/
|
|
1629
|
+
export function reactiveClass(el, prop, baseClass, activeClass) {
|
|
1630
|
+
if (typeof prop === 'function') {
|
|
1631
|
+
createEffect(() => { el.className = prop() ? cx(baseClass, activeClass) : baseClass; });
|
|
1632
|
+
} else if (prop) {
|
|
1633
|
+
el.className = cx(baseClass, activeClass);
|
|
1634
|
+
}
|
|
1635
|
+
}
|
|
1636
|
+
|
|
1637
|
+
/**
|
|
1638
|
+
* Sync a DOM property reactively.
|
|
1639
|
+
* @param {HTMLElement} el
|
|
1640
|
+
* @param {*|Function} prop
|
|
1641
|
+
* @param {string} domProp
|
|
1642
|
+
*/
|
|
1643
|
+
export function reactiveProp(el, prop, domProp) {
|
|
1644
|
+
if (typeof prop === 'function') {
|
|
1645
|
+
createEffect(() => { el[domProp] = prop(); });
|
|
1646
|
+
} else if (prop !== undefined) {
|
|
1647
|
+
el[domProp] = prop;
|
|
1648
|
+
}
|
|
1649
|
+
}
|
|
1650
|
+
|
|
1651
|
+
/**
|
|
1652
|
+
* Resolve a prop that may be a static value or signal getter.
|
|
1653
|
+
* @param {*|Function} prop
|
|
1654
|
+
* @returns {*}
|
|
1655
|
+
*/
|
|
1656
|
+
export function resolve(prop) {
|
|
1657
|
+
return typeof prop === 'function' ? prop() : prop;
|
|
1658
|
+
}
|