@prokodo/ui 1.0.6 → 1.0.8
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/README.md +43 -18
- package/dist/components/RTE/RTE.js +4 -0
- package/dist/components/RTE/RTE.lazy.js +4 -1
- package/dist/components/accordion/Accordion.css +18 -0
- package/dist/components/accordion/Accordion.module.css +18 -0
- package/dist/components/autocomplete/Autocomplete.css +19 -0
- package/dist/components/autocomplete/Autocomplete.module.css +19 -0
- package/dist/components/button/Button.css +11 -0
- package/dist/components/button/Button.module.css +11 -0
- package/dist/components/card/Card.css +13 -0
- package/dist/components/card/Card.module.css +13 -0
- package/dist/components/carousel/Carousel.css +8 -0
- package/dist/components/carousel/Carousel.module.css +8 -0
- package/dist/components/checkbox/Checkbox.css +16 -0
- package/dist/components/checkbox/Checkbox.module.css +16 -0
- package/dist/components/datePicker/DatePicker.css +41 -0
- package/dist/components/datePicker/DatePicker.module.css +41 -0
- package/dist/components/dialog/Dialog.css +11 -0
- package/dist/components/dialog/Dialog.module.css +11 -0
- package/dist/components/drawer/Drawer.css +9 -0
- package/dist/components/drawer/Drawer.module.css +9 -0
- package/dist/components/dynamic-list/DynamicList.css +12 -0
- package/dist/components/dynamic-list/DynamicList.module.css +12 -0
- package/dist/components/grid/Grid.css +4 -0
- package/dist/components/grid/Grid.module.css +4 -0
- package/dist/components/image-text/ImageText.css +4 -0
- package/dist/components/image-text/ImageText.module.css +4 -0
- package/dist/components/input/Input.css +20 -0
- package/dist/components/input/Input.module.css +20 -0
- package/dist/components/inputOTP/InputOTP.css +8 -0
- package/dist/components/inputOTP/InputOTP.module.css +8 -0
- package/dist/components/label/Label.css +8 -0
- package/dist/components/label/Label.module.css +8 -0
- package/dist/components/link/Link.css +13 -0
- package/dist/components/link/Link.module.css +13 -0
- package/dist/components/pagination/Pagination.css +10 -0
- package/dist/components/pagination/Pagination.module.css +10 -0
- package/dist/components/progressBar/ProgressBar.css +8 -0
- package/dist/components/progressBar/ProgressBar.module.css +8 -0
- package/dist/components/rating/Rating.css +15 -0
- package/dist/components/rating/Rating.module.css +15 -0
- package/dist/components/rich-text/RichText.css +18 -0
- package/dist/components/rich-text/RichText.module.css +18 -0
- package/dist/components/select/Select.css +23 -0
- package/dist/components/select/Select.module.css +23 -0
- package/dist/components/sidenav/SideNav.css +20 -0
- package/dist/components/sidenav/SideNav.module.css +20 -0
- package/dist/components/skeleton/Skeleton.css +8 -0
- package/dist/components/skeleton/Skeleton.module.css +8 -0
- package/dist/components/slider/Slider.css +19 -0
- package/dist/components/slider/Slider.module.css +19 -0
- package/dist/components/snackbar/Snackbar.css +27 -0
- package/dist/components/snackbar/Snackbar.module.css +27 -0
- package/dist/components/stepper/Stepper.css +9 -0
- package/dist/components/stepper/Stepper.module.css +9 -0
- package/dist/components/switch/Switch.css +16 -0
- package/dist/components/switch/Switch.module.css +16 -0
- package/dist/components/table/Table.css +11 -0
- package/dist/components/table/Table.module.css +11 -0
- package/dist/components/tabs/Tabs.css +18 -0
- package/dist/components/tabs/Tabs.module.css +18 -0
- package/dist/components/tooltip/Tooltip.css +25 -0
- package/dist/components/tooltip/Tooltip.module.css +25 -0
- package/dist/constants/project.js +1 -1
- package/dist/helpers/createIsland.js +7 -3
- package/dist/theme-tokens.css +0 -352
- package/dist/theme.css +442 -352
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -39,30 +39,55 @@
|
|
|
39
39
|
|
|
40
40
|
## ✨ Features
|
|
41
41
|
|
|
42
|
-
- ✨ **
|
|
43
|
-
- ⚡️ **Modern stack**: Vite, React 19, TypeScript, and SCSS Modules
|
|
44
|
-
- 💅 **Design consistency**:
|
|
45
|
-
- 🧩 **Component-rich**:
|
|
46
|
-
- 🧪 **Reliable**:
|
|
47
|
-
- 📚 **Storybook**: Explore
|
|
48
|
-
- 📦 **Ready
|
|
49
|
-
- 🚀 **
|
|
50
|
-
- ⚡ **Turbopack
|
|
51
|
-
- 🔗 **Framework adapters
|
|
42
|
+
- ✨ **AIC architecture**: Components are split into server, client, and lazy variants so JS is loaded only where interaction is needed.
|
|
43
|
+
- ⚡️ **Modern stack**: Vite, React 19, TypeScript, and SCSS Modules.
|
|
44
|
+
- 💅 **Design consistency**: Token-driven styling via CSS custom properties (`--pk-*`).
|
|
45
|
+
- 🧩 **Component-rich**: 52 production-ready components across multiple categories.
|
|
46
|
+
- 🧪 **Reliable**: Tested with Jest, Testing Library, and Cypress component tests.
|
|
47
|
+
- 📚 **Storybook**: Explore live component examples at [ui.prokodo.com/storybook](https://ui.prokodo.com/storybook).
|
|
48
|
+
- 📦 **Ready to install**: Published on npm under Apache-2.0 for production use.
|
|
49
|
+
- 🚀 **Built for Next.js 13-16**: App Router and React Server Component workflows out of the box.
|
|
50
|
+
- ⚡ **Turbopack friendly**: Works without custom bundler configuration.
|
|
51
|
+
- 🔗 **Framework adapters**: `UIRuntimeProvider` integrates routing/image primitives (for example `next/link` and `next/image`).
|
|
52
52
|
|
|
53
53
|
## ⚡ Lightweight by Design
|
|
54
54
|
|
|
55
|
-
|
|
56
|
-
Each component is built for **lazy loading**, works seamlessly with **React Server Components (RSC)**, and can be **tree-shaken** out when unused.
|
|
55
|
+
prokodo UI is designed to stay lean in SSR-first architectures by combining split component entry points with static CSS output.
|
|
57
56
|
|
|
58
|
-
**
|
|
57
|
+
- **Component-level entry points** for server, client, and lazy usage
|
|
58
|
+
- **No CSS-in-JS runtime injection** in the default styling model
|
|
59
|
+
- **Tree-shakable imports** with per-component CSS/JS separation
|
|
60
|
+
- **RSC-friendly usage model** for Next.js App Router workflows
|
|
59
61
|
|
|
60
|
-
|
|
61
|
-
- **Zero-JS on initial render** for most components
|
|
62
|
-
- **Hydration is deferred** until interaction or visibility
|
|
63
|
-
- Shared styles are minimal: **only ~16.5 kB gzipped**
|
|
62
|
+
**Measured production baseline (current build):**
|
|
64
63
|
|
|
65
|
-
|
|
64
|
+
- `theme.css`: ~34 KB gzip
|
|
65
|
+
- `theme-tokens.css`: ~3 KB gzip
|
|
66
|
+
- Additional component CSS/JS depends on what your app imports
|
|
67
|
+
|
|
68
|
+
Real-world payload varies by route composition, import discipline, and rendering strategy.
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## 🎯 How It Compares
|
|
73
|
+
|
|
74
|
+
| Aspect | prokodo UI | Material-UI (MUI) | Radix UI | Shadcn/ui |
|
|
75
|
+
| --------------------- | -------------------------------------------- | -------------------------------------- | ---------------------------------------- | ------------------------------------- |
|
|
76
|
+
| **RSC Readiness** | ✅ Native App Router fit | ⚠️ Works, but setup/runtime is heavier | ✅ Good fit, mostly low-level primitives | ✅ Good App Router workflow |
|
|
77
|
+
| **Styling Runtime** | ✅ No CSS-in-JS runtime | ⚠️ Emotion runtime by default | ✅ No styling runtime (unstyled) | ✅ Static styles in app code |
|
|
78
|
+
| **Baseline CSS** | ~34 KB (measured production baseline) | Project-dependent | Project-dependent | Project-dependent |
|
|
79
|
+
| **Tree-shaking** | ✅ Strong by design (component-level CSS/JS) | ✅ Good with strict import discipline | ✅ Strong with granular packages | ✅ Strong (copy only what you use) |
|
|
80
|
+
| **Maintenance Model** | ✅ Versioned npm library | Versioned npm library | Versioned npm library | Source ownership in each app |
|
|
81
|
+
| **Best Fit** | Next.js/Remix SSR + Core Web Vitals | Teams standardized on Material Design | Teams building custom primitives | Teams preferring copy-paste ownership |
|
|
82
|
+
|
|
83
|
+
**Recommendation:**
|
|
84
|
+
|
|
85
|
+
- Choose **prokodo UI** when performance, SSR clarity, and a ready-to-use component system are priorities.
|
|
86
|
+
- Consider alternatives only when your project explicitly needs their model (Material Design lock-in, fully headless primitives, or copy-paste ownership).
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
**Data note:** prokodo-ui bundle size (34 KB) is measured from production build. Other library sizes depend heavily on import patterns, tree-shaking, and individual project configuration.
|
|
66
91
|
|
|
67
92
|
---
|
|
68
93
|
|
|
@@ -8,6 +8,10 @@ const RTE = createIsland({
|
|
|
8
8
|
loadLazy: (
|
|
9
9
|
/* istanbul ignore next */
|
|
10
10
|
/* @__PURE__ */ __name(() => import("./RTE.lazy.js"), "loadLazy")
|
|
11
|
+
),
|
|
12
|
+
isInteractive: (
|
|
13
|
+
/* istanbul ignore next */
|
|
14
|
+
/* @__PURE__ */ __name(() => true, "isInteractive")
|
|
11
15
|
)
|
|
12
16
|
});
|
|
13
17
|
export {
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
2
4
|
import { createLazyWrapper } from "../../helpers/createLazyWrapper.js";
|
|
3
5
|
import RTEClient from "./RTE.client.js";
|
|
4
6
|
import RTEServer from "./RTE.server.js";
|
|
5
7
|
const RTE_lazy = createLazyWrapper({
|
|
6
8
|
name: "RTE",
|
|
7
9
|
Client: RTEClient,
|
|
8
|
-
Server: RTEServer
|
|
10
|
+
Server: RTEServer,
|
|
11
|
+
isInteractive: /* @__PURE__ */ __name(() => true, "isInteractive")
|
|
9
12
|
});
|
|
10
13
|
export {
|
|
11
14
|
RTE_lazy as default
|
|
@@ -128,6 +128,24 @@
|
|
|
128
128
|
* This mixin specifies basic text-styles for components that render a richtext
|
|
129
129
|
* content.
|
|
130
130
|
*/
|
|
131
|
+
:root {
|
|
132
|
+
--pk-accordion-radius: var(--pk-radius-md);
|
|
133
|
+
--pk-accordion-border: var(--pk-color-border);
|
|
134
|
+
--pk-accordion-border-focus: var(--pk-color-brand);
|
|
135
|
+
--pk-accordion-shadow: var(--pk-shadow-sm);
|
|
136
|
+
--pk-accordion-header-bg: var(--pk-color-surface);
|
|
137
|
+
--pk-accordion-content-bg: var(--pk-color-surface);
|
|
138
|
+
--pk-accordion-actions-bg: var(--pk-color-surface-raised);
|
|
139
|
+
--pk-accordion-actions-border: var(--pk-color-border);
|
|
140
|
+
--pk-accordion-fg: var(--pk-color-fg);
|
|
141
|
+
--pk-accordion-padding-x: var(--pk-space-lg);
|
|
142
|
+
--pk-accordion-padding-y: var(--pk-space-md);
|
|
143
|
+
--pk-accordion-gradient-from: var(--pk-color-brand);
|
|
144
|
+
--pk-accordion-gradient-to: var(--pk-color-accent);
|
|
145
|
+
--pk-accordion-item-tint: var(--pk-color-brand);
|
|
146
|
+
--pk-accordion-shadow-color: rgba(0, 0, 0, 0.1);
|
|
147
|
+
}
|
|
148
|
+
|
|
131
149
|
@keyframes accordionBorderShift {
|
|
132
150
|
from {
|
|
133
151
|
background-position: 0 0, 0% 0;
|
|
@@ -124,6 +124,24 @@
|
|
|
124
124
|
* This mixin specifies basic text-styles for components that render a richtext
|
|
125
125
|
* content.
|
|
126
126
|
*/
|
|
127
|
+
:root {
|
|
128
|
+
--pk-accordion-radius: var(--pk-radius-md);
|
|
129
|
+
--pk-accordion-border: var(--pk-color-border);
|
|
130
|
+
--pk-accordion-border-focus: var(--pk-color-brand);
|
|
131
|
+
--pk-accordion-shadow: var(--pk-shadow-sm);
|
|
132
|
+
--pk-accordion-header-bg: var(--pk-color-surface);
|
|
133
|
+
--pk-accordion-content-bg: var(--pk-color-surface);
|
|
134
|
+
--pk-accordion-actions-bg: var(--pk-color-surface-raised);
|
|
135
|
+
--pk-accordion-actions-border: var(--pk-color-border);
|
|
136
|
+
--pk-accordion-fg: var(--pk-color-fg);
|
|
137
|
+
--pk-accordion-padding-x: var(--pk-space-lg);
|
|
138
|
+
--pk-accordion-padding-y: var(--pk-space-md);
|
|
139
|
+
--pk-accordion-gradient-from: var(--pk-color-brand);
|
|
140
|
+
--pk-accordion-gradient-to: var(--pk-color-accent);
|
|
141
|
+
--pk-accordion-item-tint: var(--pk-color-brand);
|
|
142
|
+
--pk-accordion-shadow-color: rgba(0, 0, 0, 0.1);
|
|
143
|
+
}
|
|
144
|
+
|
|
127
145
|
@keyframes accordionBorderShift {
|
|
128
146
|
from {
|
|
129
147
|
background-position: 0 0, 0% 0;
|
|
@@ -126,6 +126,25 @@
|
|
|
126
126
|
* This mixin specifies basic text-styles for components that render a richtext
|
|
127
127
|
* content.
|
|
128
128
|
*/
|
|
129
|
+
:root {
|
|
130
|
+
--pk-autocomplete-bg: var(--pk-color-surface);
|
|
131
|
+
--pk-autocomplete-fg: var(--pk-color-fg);
|
|
132
|
+
--pk-autocomplete-fg-muted: var(--pk-color-muted);
|
|
133
|
+
--pk-autocomplete-radius: var(--pk-radius-pill);
|
|
134
|
+
--pk-autocomplete-shadow-color: rgba(0, 0, 0, 0.1);
|
|
135
|
+
--pk-autocomplete-shadow-color-focus: color-mix(in srgb, var(--pk-color-brand) 30%, transparent);
|
|
136
|
+
--pk-autocomplete-gradient-from: var(--pk-color-brand);
|
|
137
|
+
--pk-autocomplete-gradient-to: var(--pk-color-accent);
|
|
138
|
+
--pk-autocomplete-shadow: var(--pk-shadow-lg);
|
|
139
|
+
--pk-autocomplete-item-hover-bg: var(--pk-palette-primary-50);
|
|
140
|
+
--pk-autocomplete-item-active-bg: var(--pk-palette-primary-100);
|
|
141
|
+
--pk-autocomplete-state-bg: var(--pk-color-surface);
|
|
142
|
+
--pk-autocomplete-state-fg: var(--pk-palette-grey-700);
|
|
143
|
+
--pk-autocomplete-dropdown-bg: var(--pk-color-surface-raised);
|
|
144
|
+
--pk-autocomplete-padding-x: var(--pk-space-md);
|
|
145
|
+
--pk-autocomplete-padding-y: var(--pk-space-sm);
|
|
146
|
+
}
|
|
147
|
+
|
|
129
148
|
.prokodo-Autocomplete {
|
|
130
149
|
position: relative;
|
|
131
150
|
display: flex;
|
|
@@ -124,6 +124,25 @@
|
|
|
124
124
|
* This mixin specifies basic text-styles for components that render a richtext
|
|
125
125
|
* content.
|
|
126
126
|
*/
|
|
127
|
+
:root {
|
|
128
|
+
--pk-autocomplete-bg: var(--pk-color-surface);
|
|
129
|
+
--pk-autocomplete-fg: var(--pk-color-fg);
|
|
130
|
+
--pk-autocomplete-fg-muted: var(--pk-color-muted);
|
|
131
|
+
--pk-autocomplete-radius: var(--pk-radius-pill);
|
|
132
|
+
--pk-autocomplete-shadow-color: rgba(0, 0, 0, 0.1);
|
|
133
|
+
--pk-autocomplete-shadow-color-focus: color-mix(in srgb, var(--pk-color-brand) 30%, transparent);
|
|
134
|
+
--pk-autocomplete-gradient-from: var(--pk-color-brand);
|
|
135
|
+
--pk-autocomplete-gradient-to: var(--pk-color-accent);
|
|
136
|
+
--pk-autocomplete-shadow: var(--pk-shadow-lg);
|
|
137
|
+
--pk-autocomplete-item-hover-bg: var(--pk-palette-primary-50);
|
|
138
|
+
--pk-autocomplete-item-active-bg: var(--pk-palette-primary-100);
|
|
139
|
+
--pk-autocomplete-state-bg: var(--pk-color-surface);
|
|
140
|
+
--pk-autocomplete-state-fg: var(--pk-palette-grey-700);
|
|
141
|
+
--pk-autocomplete-dropdown-bg: var(--pk-color-surface-raised);
|
|
142
|
+
--pk-autocomplete-padding-x: var(--pk-space-md);
|
|
143
|
+
--pk-autocomplete-padding-y: var(--pk-space-sm);
|
|
144
|
+
}
|
|
145
|
+
|
|
127
146
|
.prokodo-Autocomplete {
|
|
128
147
|
position: relative;
|
|
129
148
|
display: flex;
|
|
@@ -128,6 +128,17 @@
|
|
|
128
128
|
* This mixin specifies basic text-styles for components that render a richtext
|
|
129
129
|
* content.
|
|
130
130
|
*/
|
|
131
|
+
:root {
|
|
132
|
+
--pk-button-bg: var(--pk-color-surface-raised);
|
|
133
|
+
--pk-button-fg: var(--pk-color-fg);
|
|
134
|
+
--pk-button-radius: var(--pk-radius-pill);
|
|
135
|
+
--pk-button-padding-x: var(--pk-space-xl);
|
|
136
|
+
--pk-button-padding-y: 0.875rem;
|
|
137
|
+
--pk-button-shadow: var(--pk-shadow-sm);
|
|
138
|
+
--pk-button-disabled-bg: var(--pk-color-border);
|
|
139
|
+
--pk-button-disabled-fg: var(--pk-color-muted);
|
|
140
|
+
}
|
|
141
|
+
|
|
131
142
|
.prokodo-Button {
|
|
132
143
|
display: inline-flex;
|
|
133
144
|
align-items: center;
|
|
@@ -124,6 +124,17 @@
|
|
|
124
124
|
* This mixin specifies basic text-styles for components that render a richtext
|
|
125
125
|
* content.
|
|
126
126
|
*/
|
|
127
|
+
:root {
|
|
128
|
+
--pk-button-bg: var(--pk-color-surface-raised);
|
|
129
|
+
--pk-button-fg: var(--pk-color-fg);
|
|
130
|
+
--pk-button-radius: var(--pk-radius-pill);
|
|
131
|
+
--pk-button-padding-x: var(--pk-space-xl);
|
|
132
|
+
--pk-button-padding-y: 0.875rem;
|
|
133
|
+
--pk-button-shadow: var(--pk-shadow-sm);
|
|
134
|
+
--pk-button-disabled-bg: var(--pk-color-border);
|
|
135
|
+
--pk-button-disabled-fg: var(--pk-color-muted);
|
|
136
|
+
}
|
|
137
|
+
|
|
127
138
|
.prokodo-Button {
|
|
128
139
|
display: inline-flex;
|
|
129
140
|
align-items: center;
|
|
@@ -131,6 +131,19 @@
|
|
|
131
131
|
* This mixin specifies basic text-styles for components that render a richtext
|
|
132
132
|
* content.
|
|
133
133
|
*/
|
|
134
|
+
:root {
|
|
135
|
+
--pk-card-bg: var(--pk-color-surface);
|
|
136
|
+
--pk-card-fg: var(--pk-color-fg);
|
|
137
|
+
--pk-card-radius: var(--pk-radius-lg);
|
|
138
|
+
--pk-card-shadow: var(--pk-shadow-sm);
|
|
139
|
+
--pk-card-padding: var(--pk-space-xl);
|
|
140
|
+
--pk-card-inherit-bg: var(--pk-color-surface-raised);
|
|
141
|
+
--pk-card-panel-bg: rgba(255, 255, 255, 0.03);
|
|
142
|
+
--pk-card-panel-border: rgba(255, 255, 255, 0.10);
|
|
143
|
+
--pk-card-panel-light-bg: var(--pk-color-surface);
|
|
144
|
+
--pk-card-panel-light-border: rgba(0, 0, 0, 0.08);
|
|
145
|
+
}
|
|
146
|
+
|
|
134
147
|
@keyframes Card_fadeInAnimation {
|
|
135
148
|
0% {
|
|
136
149
|
opacity: 0;
|
|
@@ -124,6 +124,19 @@
|
|
|
124
124
|
* This mixin specifies basic text-styles for components that render a richtext
|
|
125
125
|
* content.
|
|
126
126
|
*/
|
|
127
|
+
:root {
|
|
128
|
+
--pk-card-bg: var(--pk-color-surface);
|
|
129
|
+
--pk-card-fg: var(--pk-color-fg);
|
|
130
|
+
--pk-card-radius: var(--pk-radius-lg);
|
|
131
|
+
--pk-card-shadow: var(--pk-shadow-sm);
|
|
132
|
+
--pk-card-padding: var(--pk-space-xl);
|
|
133
|
+
--pk-card-inherit-bg: var(--pk-color-surface-raised);
|
|
134
|
+
--pk-card-panel-bg: rgba(255, 255, 255, 0.03);
|
|
135
|
+
--pk-card-panel-border: rgba(255, 255, 255, 0.10);
|
|
136
|
+
--pk-card-panel-light-bg: var(--pk-color-surface);
|
|
137
|
+
--pk-card-panel-light-border: rgba(0, 0, 0, 0.08);
|
|
138
|
+
}
|
|
139
|
+
|
|
127
140
|
@keyframes Card_fadeInAnimation {
|
|
128
141
|
0% {
|
|
129
142
|
opacity: 0;
|
|
@@ -126,6 +126,14 @@
|
|
|
126
126
|
* This mixin specifies basic text-styles for components that render a richtext
|
|
127
127
|
* content.
|
|
128
128
|
*/
|
|
129
|
+
:root {
|
|
130
|
+
--pk-carousel-overlay-bg: color-mix(in srgb, var(--pk-palette-grey-900) 70%, transparent);
|
|
131
|
+
--pk-carousel-dot-active-bg: var(--pk-color-fg);
|
|
132
|
+
--pk-carousel-button-padding: var(--pk-space-md);
|
|
133
|
+
--pk-carousel-dots-mt: 0;
|
|
134
|
+
--pk-carousel-controls-mt: var(--pk-space-lg);
|
|
135
|
+
}
|
|
136
|
+
|
|
129
137
|
.prokodo-Carousel {
|
|
130
138
|
position: relative;
|
|
131
139
|
width: 100%;
|
|
@@ -124,6 +124,14 @@
|
|
|
124
124
|
* This mixin specifies basic text-styles for components that render a richtext
|
|
125
125
|
* content.
|
|
126
126
|
*/
|
|
127
|
+
:root {
|
|
128
|
+
--pk-carousel-overlay-bg: color-mix(in srgb, var(--pk-palette-grey-900) 70%, transparent);
|
|
129
|
+
--pk-carousel-dot-active-bg: var(--pk-color-fg);
|
|
130
|
+
--pk-carousel-button-padding: var(--pk-space-md);
|
|
131
|
+
--pk-carousel-dots-mt: 0;
|
|
132
|
+
--pk-carousel-controls-mt: var(--pk-space-lg);
|
|
133
|
+
}
|
|
134
|
+
|
|
127
135
|
.prokodo-Carousel {
|
|
128
136
|
position: relative;
|
|
129
137
|
width: 100%;
|
|
@@ -124,6 +124,22 @@
|
|
|
124
124
|
* This mixin specifies basic text-styles for components that render a richtext
|
|
125
125
|
* content.
|
|
126
126
|
*/
|
|
127
|
+
:root {
|
|
128
|
+
--pk-checkbox-size: 1.125rem;
|
|
129
|
+
--pk-checkbox-radius: var(--pk-radius-md);
|
|
130
|
+
--pk-checkbox-control-radius: 6px;
|
|
131
|
+
--pk-checkbox-control-border: var(--pk-palette-grey-200);
|
|
132
|
+
--pk-checkbox-control-bg: var(--pk-palette-white);
|
|
133
|
+
--pk-checkbox-control-checked-border: transparent;
|
|
134
|
+
--pk-checkbox-gradient-from: var(--pk-color-brand);
|
|
135
|
+
--pk-checkbox-gradient-to: var(--pk-color-accent);
|
|
136
|
+
--pk-checkbox-shadow-color: color-mix(in srgb, var(--pk-color-brand) 30%, transparent);
|
|
137
|
+
--pk-checkbox-fg: var(--pk-color-fg);
|
|
138
|
+
--pk-checkbox-fg-muted: var(--pk-color-muted);
|
|
139
|
+
--pk-checkbox-error-fg: var(--pk-color-error);
|
|
140
|
+
--pk-checkbox-card-bg: var(--pk-color-surface);
|
|
141
|
+
}
|
|
142
|
+
|
|
127
143
|
.prokodo-Checkbox {
|
|
128
144
|
display: inline-flex;
|
|
129
145
|
align-items: flex-start;
|
|
@@ -124,6 +124,22 @@
|
|
|
124
124
|
* This mixin specifies basic text-styles for components that render a richtext
|
|
125
125
|
* content.
|
|
126
126
|
*/
|
|
127
|
+
:root {
|
|
128
|
+
--pk-checkbox-size: 1.125rem;
|
|
129
|
+
--pk-checkbox-radius: var(--pk-radius-md);
|
|
130
|
+
--pk-checkbox-control-radius: 6px;
|
|
131
|
+
--pk-checkbox-control-border: var(--pk-palette-grey-200);
|
|
132
|
+
--pk-checkbox-control-bg: var(--pk-palette-white);
|
|
133
|
+
--pk-checkbox-control-checked-border: transparent;
|
|
134
|
+
--pk-checkbox-gradient-from: var(--pk-color-brand);
|
|
135
|
+
--pk-checkbox-gradient-to: var(--pk-color-accent);
|
|
136
|
+
--pk-checkbox-shadow-color: color-mix(in srgb, var(--pk-color-brand) 30%, transparent);
|
|
137
|
+
--pk-checkbox-fg: var(--pk-color-fg);
|
|
138
|
+
--pk-checkbox-fg-muted: var(--pk-color-muted);
|
|
139
|
+
--pk-checkbox-error-fg: var(--pk-color-error);
|
|
140
|
+
--pk-checkbox-card-bg: var(--pk-color-surface);
|
|
141
|
+
}
|
|
142
|
+
|
|
127
143
|
.prokodo-Checkbox {
|
|
128
144
|
display: inline-flex;
|
|
129
145
|
align-items: flex-start;
|
|
@@ -126,6 +126,47 @@
|
|
|
126
126
|
* This mixin specifies basic text-styles for components that render a richtext
|
|
127
127
|
* content.
|
|
128
128
|
*/
|
|
129
|
+
:root {
|
|
130
|
+
--pk-dp-trigger-bg: var(--pk-color-surface);
|
|
131
|
+
--pk-dp-trigger-fg: var(--pk-color-fg);
|
|
132
|
+
--pk-dp-trigger-fg-muted: var(--pk-color-muted);
|
|
133
|
+
--pk-dp-trigger-border: var(--pk-color-border);
|
|
134
|
+
--pk-dp-trigger-radius: var(--pk-radius-pill);
|
|
135
|
+
--pk-dp-trigger-padding-x: var(--pk-space-lg);
|
|
136
|
+
--pk-dp-trigger-padding-y: 0.875rem;
|
|
137
|
+
--pk-dp-trigger-label-fg: var(--pk-color-muted);
|
|
138
|
+
--pk-dp-trigger-label-float-fg: var(--pk-color-brand);
|
|
139
|
+
--pk-dp-dialog-bg: var(--pk-color-surface);
|
|
140
|
+
--pk-dp-dialog-border: var(--pk-color-border);
|
|
141
|
+
--pk-dp-dialog-radius: var(--pk-radius-lg);
|
|
142
|
+
--pk-dp-dialog-shadow: var(--pk-shadow-lg);
|
|
143
|
+
--pk-dp-dialog-padding: var(--pk-space-md);
|
|
144
|
+
--pk-dp-dialog-min-width: 17rem;
|
|
145
|
+
--pk-dp-header-fg: var(--pk-color-fg);
|
|
146
|
+
--pk-dp-nav-fg: var(--pk-color-muted);
|
|
147
|
+
--pk-dp-nav-hover-bg: var(--pk-color-border);
|
|
148
|
+
--pk-dp-nav-radius: var(--pk-radius-circle);
|
|
149
|
+
--pk-dp-weekday-fg: var(--pk-color-muted);
|
|
150
|
+
--pk-dp-day-fg: var(--pk-color-fg);
|
|
151
|
+
--pk-dp-day-radius: var(--pk-radius-circle);
|
|
152
|
+
--pk-dp-day-hover-bg: color-mix(in srgb, var(--pk-color-border) 60%, transparent);
|
|
153
|
+
--pk-dp-day-outside-fg: color-mix(in srgb, var(--pk-color-muted) 50%, transparent);
|
|
154
|
+
--pk-dp-day-disabled-fg: color-mix(in srgb, var(--pk-color-muted) 40%, transparent);
|
|
155
|
+
--pk-dp-day-today-ring: var(--pk-color-brand);
|
|
156
|
+
--pk-dp-gradient-from: var(--pk-color-brand);
|
|
157
|
+
--pk-dp-gradient-to: var(--pk-color-accent);
|
|
158
|
+
--pk-dp-shadow-color: color-mix(in srgb, var(--pk-color-brand) 30%, transparent);
|
|
159
|
+
--pk-dp-time-label-fg: var(--pk-color-fg);
|
|
160
|
+
--pk-dp-time-select-bg: var(--pk-color-surface);
|
|
161
|
+
--pk-dp-time-select-fg: var(--pk-color-fg);
|
|
162
|
+
--pk-dp-time-select-border: var(--pk-color-border);
|
|
163
|
+
--pk-dp-time-select-radius: var(--pk-radius-md);
|
|
164
|
+
--pk-dp-time-sep-fg: var(--pk-color-muted);
|
|
165
|
+
--pk-dp-footer-border: var(--pk-color-border);
|
|
166
|
+
--pk-dp-footer-ghost-fg: var(--pk-color-muted);
|
|
167
|
+
--pk-dp-footer-ghost-hover-fg: var(--pk-color-fg);
|
|
168
|
+
}
|
|
169
|
+
|
|
129
170
|
@keyframes dpDialogIn {
|
|
130
171
|
from {
|
|
131
172
|
opacity: 0;
|
|
@@ -124,6 +124,47 @@
|
|
|
124
124
|
* This mixin specifies basic text-styles for components that render a richtext
|
|
125
125
|
* content.
|
|
126
126
|
*/
|
|
127
|
+
:root {
|
|
128
|
+
--pk-dp-trigger-bg: var(--pk-color-surface);
|
|
129
|
+
--pk-dp-trigger-fg: var(--pk-color-fg);
|
|
130
|
+
--pk-dp-trigger-fg-muted: var(--pk-color-muted);
|
|
131
|
+
--pk-dp-trigger-border: var(--pk-color-border);
|
|
132
|
+
--pk-dp-trigger-radius: var(--pk-radius-pill);
|
|
133
|
+
--pk-dp-trigger-padding-x: var(--pk-space-lg);
|
|
134
|
+
--pk-dp-trigger-padding-y: 0.875rem;
|
|
135
|
+
--pk-dp-trigger-label-fg: var(--pk-color-muted);
|
|
136
|
+
--pk-dp-trigger-label-float-fg: var(--pk-color-brand);
|
|
137
|
+
--pk-dp-dialog-bg: var(--pk-color-surface);
|
|
138
|
+
--pk-dp-dialog-border: var(--pk-color-border);
|
|
139
|
+
--pk-dp-dialog-radius: var(--pk-radius-lg);
|
|
140
|
+
--pk-dp-dialog-shadow: var(--pk-shadow-lg);
|
|
141
|
+
--pk-dp-dialog-padding: var(--pk-space-md);
|
|
142
|
+
--pk-dp-dialog-min-width: 17rem;
|
|
143
|
+
--pk-dp-header-fg: var(--pk-color-fg);
|
|
144
|
+
--pk-dp-nav-fg: var(--pk-color-muted);
|
|
145
|
+
--pk-dp-nav-hover-bg: var(--pk-color-border);
|
|
146
|
+
--pk-dp-nav-radius: var(--pk-radius-circle);
|
|
147
|
+
--pk-dp-weekday-fg: var(--pk-color-muted);
|
|
148
|
+
--pk-dp-day-fg: var(--pk-color-fg);
|
|
149
|
+
--pk-dp-day-radius: var(--pk-radius-circle);
|
|
150
|
+
--pk-dp-day-hover-bg: color-mix(in srgb, var(--pk-color-border) 60%, transparent);
|
|
151
|
+
--pk-dp-day-outside-fg: color-mix(in srgb, var(--pk-color-muted) 50%, transparent);
|
|
152
|
+
--pk-dp-day-disabled-fg: color-mix(in srgb, var(--pk-color-muted) 40%, transparent);
|
|
153
|
+
--pk-dp-day-today-ring: var(--pk-color-brand);
|
|
154
|
+
--pk-dp-gradient-from: var(--pk-color-brand);
|
|
155
|
+
--pk-dp-gradient-to: var(--pk-color-accent);
|
|
156
|
+
--pk-dp-shadow-color: color-mix(in srgb, var(--pk-color-brand) 30%, transparent);
|
|
157
|
+
--pk-dp-time-label-fg: var(--pk-color-fg);
|
|
158
|
+
--pk-dp-time-select-bg: var(--pk-color-surface);
|
|
159
|
+
--pk-dp-time-select-fg: var(--pk-color-fg);
|
|
160
|
+
--pk-dp-time-select-border: var(--pk-color-border);
|
|
161
|
+
--pk-dp-time-select-radius: var(--pk-radius-md);
|
|
162
|
+
--pk-dp-time-sep-fg: var(--pk-color-muted);
|
|
163
|
+
--pk-dp-footer-border: var(--pk-color-border);
|
|
164
|
+
--pk-dp-footer-ghost-fg: var(--pk-color-muted);
|
|
165
|
+
--pk-dp-footer-ghost-hover-fg: var(--pk-color-fg);
|
|
166
|
+
}
|
|
167
|
+
|
|
127
168
|
@keyframes dpDialogIn {
|
|
128
169
|
from {
|
|
129
170
|
opacity: 0;
|
|
@@ -126,6 +126,17 @@
|
|
|
126
126
|
* This mixin specifies basic text-styles for components that render a richtext
|
|
127
127
|
* content.
|
|
128
128
|
*/
|
|
129
|
+
:root {
|
|
130
|
+
--pk-dialog-bg: var(--pk-color-surface);
|
|
131
|
+
--pk-dialog-fg: var(--pk-color-fg);
|
|
132
|
+
--pk-dialog-radius: var(--pk-radius-md);
|
|
133
|
+
--pk-dialog-shadow: var(--pk-shadow-lg);
|
|
134
|
+
--pk-dialog-padding-x: var(--pk-space-lg);
|
|
135
|
+
--pk-dialog-padding-y: var(--pk-space-xl);
|
|
136
|
+
--pk-dialog-header-fg: var(--pk-color-fg);
|
|
137
|
+
--pk-dialog-close-fg: var(--pk-palette-grey-500);
|
|
138
|
+
}
|
|
139
|
+
|
|
129
140
|
@keyframes Dialog_fadeIn {
|
|
130
141
|
from {
|
|
131
142
|
opacity: 0;
|
|
@@ -124,6 +124,17 @@
|
|
|
124
124
|
* This mixin specifies basic text-styles for components that render a richtext
|
|
125
125
|
* content.
|
|
126
126
|
*/
|
|
127
|
+
:root {
|
|
128
|
+
--pk-dialog-bg: var(--pk-color-surface);
|
|
129
|
+
--pk-dialog-fg: var(--pk-color-fg);
|
|
130
|
+
--pk-dialog-radius: var(--pk-radius-md);
|
|
131
|
+
--pk-dialog-shadow: var(--pk-shadow-lg);
|
|
132
|
+
--pk-dialog-padding-x: var(--pk-space-lg);
|
|
133
|
+
--pk-dialog-padding-y: var(--pk-space-xl);
|
|
134
|
+
--pk-dialog-header-fg: var(--pk-color-fg);
|
|
135
|
+
--pk-dialog-close-fg: var(--pk-palette-grey-500);
|
|
136
|
+
}
|
|
137
|
+
|
|
127
138
|
@keyframes Dialog_fadeIn {
|
|
128
139
|
from {
|
|
129
140
|
opacity: 0;
|
|
@@ -127,6 +127,15 @@
|
|
|
127
127
|
* This mixin specifies basic text-styles for components that render a richtext
|
|
128
128
|
* content.
|
|
129
129
|
*/
|
|
130
|
+
:root {
|
|
131
|
+
--pk-drawer-bg: var(--pk-color-surface);
|
|
132
|
+
--pk-drawer-border: var(--pk-color-border);
|
|
133
|
+
--pk-drawer-shadow: var(--elevation-1);
|
|
134
|
+
--pk-drawer-backdrop-bg: rgba(0, 0, 0, 0.5);
|
|
135
|
+
--pk-drawer-z-index: 1302;
|
|
136
|
+
--pk-drawer-padding: var(--pk-space-md);
|
|
137
|
+
}
|
|
138
|
+
|
|
130
139
|
.prokodo-Drawer {
|
|
131
140
|
/* Backdrop (unchanged, fades in) */
|
|
132
141
|
/* Container (slide + fade via transitions) */
|
|
@@ -124,6 +124,15 @@
|
|
|
124
124
|
* This mixin specifies basic text-styles for components that render a richtext
|
|
125
125
|
* content.
|
|
126
126
|
*/
|
|
127
|
+
:root {
|
|
128
|
+
--pk-drawer-bg: var(--pk-color-surface);
|
|
129
|
+
--pk-drawer-border: var(--pk-color-border);
|
|
130
|
+
--pk-drawer-shadow: var(--elevation-1);
|
|
131
|
+
--pk-drawer-backdrop-bg: rgba(0, 0, 0, 0.5);
|
|
132
|
+
--pk-drawer-z-index: 1302;
|
|
133
|
+
--pk-drawer-padding: var(--pk-space-md);
|
|
134
|
+
}
|
|
135
|
+
|
|
127
136
|
.prokodo-Drawer {
|
|
128
137
|
/* Backdrop (unchanged, fades in) */
|
|
129
138
|
/* Container (slide + fade via transitions) */
|
|
@@ -130,6 +130,18 @@
|
|
|
130
130
|
* This mixin specifies basic text-styles for components that render a richtext
|
|
131
131
|
* content.
|
|
132
132
|
*/
|
|
133
|
+
:root {
|
|
134
|
+
--pk-dynamic-list-label-mb: var(--pk-space-md);
|
|
135
|
+
--pk-dynamic-list-gap: var(--pk-space-lg);
|
|
136
|
+
--pk-dynamic-list-field-mb: var(--pk-space-lg);
|
|
137
|
+
--pk-dynamic-list-delete-mt: var(--pk-space-sm);
|
|
138
|
+
--pk-dynamic-list-helper-fg: var(--pk-palette-grey-300);
|
|
139
|
+
--pk-dynamic-list-helper-pl: var(--pk-space-xl);
|
|
140
|
+
--pk-dynamic-list-helper-pt: var(--pk-space-md);
|
|
141
|
+
--pk-dynamic-list-helper-w: 80%;
|
|
142
|
+
--pk-dynamic-list-error-fg: var(--pk-color-error);
|
|
143
|
+
}
|
|
144
|
+
|
|
133
145
|
.prokodo-DynamicList {
|
|
134
146
|
border: none;
|
|
135
147
|
padding: 0;
|
|
@@ -125,6 +125,18 @@
|
|
|
125
125
|
* This mixin specifies basic text-styles for components that render a richtext
|
|
126
126
|
* content.
|
|
127
127
|
*/
|
|
128
|
+
:root {
|
|
129
|
+
--pk-dynamic-list-label-mb: var(--pk-space-md);
|
|
130
|
+
--pk-dynamic-list-gap: var(--pk-space-lg);
|
|
131
|
+
--pk-dynamic-list-field-mb: var(--pk-space-lg);
|
|
132
|
+
--pk-dynamic-list-delete-mt: var(--pk-space-sm);
|
|
133
|
+
--pk-dynamic-list-helper-fg: var(--pk-palette-grey-300);
|
|
134
|
+
--pk-dynamic-list-helper-pl: var(--pk-space-xl);
|
|
135
|
+
--pk-dynamic-list-helper-pt: var(--pk-space-md);
|
|
136
|
+
--pk-dynamic-list-helper-w: 80%;
|
|
137
|
+
--pk-dynamic-list-error-fg: var(--pk-color-error);
|
|
138
|
+
}
|
|
139
|
+
|
|
128
140
|
.prokodo-DynamicList {
|
|
129
141
|
border: none;
|
|
130
142
|
padding: 0;
|
|
@@ -124,6 +124,10 @@
|
|
|
124
124
|
* This mixin specifies basic text-styles for components that render a richtext
|
|
125
125
|
* content.
|
|
126
126
|
*/
|
|
127
|
+
:root {
|
|
128
|
+
--pk-grid-padding: var(--pk-space-lg);
|
|
129
|
+
}
|
|
130
|
+
|
|
127
131
|
.prokodo-Grid {
|
|
128
132
|
display: grid;
|
|
129
133
|
grid-template-columns: repeat(12, 1fr);
|
|
@@ -124,6 +124,10 @@
|
|
|
124
124
|
* This mixin specifies basic text-styles for components that render a richtext
|
|
125
125
|
* content.
|
|
126
126
|
*/
|
|
127
|
+
:root {
|
|
128
|
+
--pk-grid-padding: var(--pk-space-lg);
|
|
129
|
+
}
|
|
130
|
+
|
|
127
131
|
.prokodo-Grid {
|
|
128
132
|
display: grid;
|
|
129
133
|
grid-template-columns: repeat(12, 1fr);
|
|
@@ -132,6 +132,10 @@
|
|
|
132
132
|
* This mixin specifies basic text-styles for components that render a richtext
|
|
133
133
|
* content.
|
|
134
134
|
*/
|
|
135
|
+
:root {
|
|
136
|
+
--pk-image-text-content-color: var(--pk-color-muted);
|
|
137
|
+
}
|
|
138
|
+
|
|
135
139
|
@keyframes ImageText_borderFlowDown {
|
|
136
140
|
from {
|
|
137
141
|
background-position: 0 -100%;
|
|
@@ -124,6 +124,10 @@
|
|
|
124
124
|
* This mixin specifies basic text-styles for components that render a richtext
|
|
125
125
|
* content.
|
|
126
126
|
*/
|
|
127
|
+
:root {
|
|
128
|
+
--pk-image-text-content-color: var(--pk-color-muted);
|
|
129
|
+
}
|
|
130
|
+
|
|
127
131
|
@keyframes ImageText_borderFlowDown {
|
|
128
132
|
from {
|
|
129
133
|
background-position: 0 -100%;
|
|
@@ -126,6 +126,26 @@
|
|
|
126
126
|
* This mixin specifies basic text-styles for components that render a richtext
|
|
127
127
|
* content.
|
|
128
128
|
*/
|
|
129
|
+
:root {
|
|
130
|
+
--pk-input-bg: var(--pk-color-surface);
|
|
131
|
+
--pk-input-fg: var(--pk-color-fg);
|
|
132
|
+
--pk-input-fg-muted: var(--pk-color-muted);
|
|
133
|
+
--pk-input-border: var(--pk-color-border);
|
|
134
|
+
--pk-input-border-focus: var(--pk-color-brand);
|
|
135
|
+
--pk-input-radius: var(--pk-radius-pill);
|
|
136
|
+
--pk-input-padding-x: var(--pk-space-lg);
|
|
137
|
+
--pk-input-padding-y: 0.875rem;
|
|
138
|
+
--pk-input-label-fg: var(--pk-color-muted);
|
|
139
|
+
--pk-input-label-focused-fg: var(--pk-color-brand);
|
|
140
|
+
--pk-input-helper-fg: var(--pk-palette-grey-300);
|
|
141
|
+
--pk-input-focus-ring: var(--pk-focus-ring-color);
|
|
142
|
+
--pk-input-shadow: var(--pk-shadow-sm);
|
|
143
|
+
--pk-input-shadow-color: rgba(0, 0, 0, 0.1);
|
|
144
|
+
--pk-input-shadow-color-focus: color-mix(in srgb, var(--pk-input-border-focus) 30%, transparent);
|
|
145
|
+
--pk-input-gradient-from: var(--pk-color-brand);
|
|
146
|
+
--pk-input-gradient-to: var(--pk-color-accent);
|
|
147
|
+
}
|
|
148
|
+
|
|
129
149
|
@keyframes inputNotchAnimate {
|
|
130
150
|
0%, 100% {
|
|
131
151
|
border-color: var(--pk-input-gradient-from);
|