@lattice-php/lattice 0.24.0 → 0.26.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/dist/action/components/action-form.js +37 -5
- package/dist/action/components/action-form.js.map +1 -1
- package/dist/action/components/action-group.js +1 -1
- package/dist/action/components/action-group.js.map +1 -1
- package/dist/action/components/action.js +3 -2
- package/dist/action/components/action.js.map +1 -1
- package/dist/action/hooks/use-action.js +2 -1
- package/dist/action/hooks/use-action.js.map +1 -1
- package/dist/appearance/index.d.ts +1 -1
- package/dist/appearance/index.js +8 -8
- package/dist/appearance/index.js.map +1 -1
- package/dist/chat/components/prompt-input.js +1 -2
- package/dist/chat/components/prompt-input.js.map +1 -1
- package/dist/create-app.js +2 -2
- package/dist/create-app.js.map +1 -1
- package/dist/form/components/base/submit-button.d.ts +4 -3
- package/dist/form/components/base/submit-button.js +2 -1
- package/dist/form/components/base/submit-button.js.map +1 -1
- package/dist/form/components/fields/date-picker-field.js +3 -3
- package/dist/form/components/fields/date-picker-field.js.map +1 -1
- package/dist/form/components/fields/number-input.js +1 -1
- package/dist/form/components/fields/number-input.js.map +1 -1
- package/dist/form/components/fields/rich-editor-field.js +1 -1
- package/dist/form/components/fields/rich-editor-field.js.map +1 -1
- package/dist/form/components/fields/row-action-menu.js +3 -3
- package/dist/form/components/fields/row-action-menu.js.map +1 -1
- package/dist/form/components/fields/row-actions.d.ts +1 -1
- package/dist/form/components/fields/row-actions.js +4 -4
- package/dist/form/components/fields/row-actions.js.map +1 -1
- package/dist/form/components/fields/toggle.js +1 -1
- package/dist/form/components/fields/toggle.js.map +1 -1
- package/dist/form/components/form.js +15 -5
- package/dist/form/components/form.js.map +1 -1
- package/dist/form/components/index.d.ts +1 -0
- package/dist/form/components/index.js +2 -1
- package/dist/form/components/wizard.d.ts +3 -0
- package/dist/form/components/wizard.js +148 -0
- package/dist/form/components/wizard.js.map +1 -0
- package/dist/form/embed.d.ts +1 -1
- package/dist/form/embed.js +2 -2
- package/dist/form/hooks/context.d.ts +7 -2
- package/dist/form/hooks/context.js +4 -1
- package/dist/form/hooks/context.js.map +1 -1
- package/dist/form/index.js +2 -1
- package/dist/form/lib/field-errors.d.ts +2 -0
- package/dist/form/lib/field-errors.js +5 -1
- package/dist/form/lib/field-errors.js.map +1 -1
- package/dist/form/lib/field-props.d.ts +6 -0
- package/dist/form/lib/field-props.js +7 -1
- package/dist/form/lib/field-props.js.map +1 -1
- package/dist/form/lib/prefill-targets.js +2 -3
- package/dist/form/lib/prefill-targets.js.map +1 -1
- package/dist/form/lib/wizard-steps.d.ts +5 -0
- package/dist/form/lib/wizard-steps.js +44 -0
- package/dist/form/lib/wizard-steps.js.map +1 -0
- package/dist/form/plugin.js +4 -1
- package/dist/form/plugin.js.map +1 -1
- package/dist/i18n/translatable.d.ts +1 -0
- package/dist/i18n/translatable.js +4 -1
- package/dist/i18n/translatable.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/lattice.css +183 -115
- package/dist/layout/components/callouts.js +3 -2
- package/dist/layout/components/callouts.js.map +1 -1
- package/dist/notifications/components/notification-item.js +10 -5
- package/dist/notifications/components/notification-item.js.map +1 -1
- package/dist/notifications/components/notifications.js +2 -4
- package/dist/notifications/components/notifications.js.map +1 -1
- package/dist/table/components/bulk-bar.js +2 -0
- package/dist/table/components/bulk-bar.js.map +1 -1
- package/dist/table/components/cells/badge-cell.js +3 -6
- package/dist/table/components/cells/badge-cell.js.map +1 -1
- package/dist/table/components/cells/text-cell.js +6 -9
- package/dist/table/components/cells/text-cell.js.map +1 -1
- package/dist/table/components/column-filter-control.js +2 -2
- package/dist/table/components/column-filter-control.js.map +1 -1
- package/dist/table/components/filter-bar.js +1 -1
- package/dist/table/components/filter-bar.js.map +1 -1
- package/dist/table/components/filter-controls.js +4 -1
- package/dist/table/components/filter-controls.js.map +1 -1
- package/dist/table/components/pagination.js +6 -6
- package/dist/table/components/pagination.js.map +1 -1
- package/dist/table/lib/bulk.d.ts +3 -2
- package/dist/table/lib/bulk.js +2 -1
- package/dist/table/lib/bulk.js.map +1 -1
- package/dist/toast/callout.js +6 -3
- package/dist/toast/callout.js.map +1 -1
- package/dist/toast/toast.js +3 -1
- package/dist/toast/toast.js.map +1 -1
- package/dist/toast/toaster.js +2 -2
- package/dist/toast/toaster.js.map +1 -1
- package/dist/toast/variant-styles.js +15 -1
- package/dist/toast/variant-styles.js.map +1 -1
- package/dist/types/generated.d.ts +31 -16
- package/dist/ui/action-menu-context.d.ts +1 -1
- package/dist/ui/action-menu-context.js +1 -1
- package/dist/ui/action-menu-context.js.map +1 -1
- package/dist/ui/affix-group.js +1 -1
- package/dist/ui/affix-group.js.map +1 -1
- package/dist/ui/badge.d.ts +4 -7
- package/dist/ui/badge.js +11 -17
- package/dist/ui/badge.js.map +1 -1
- package/dist/ui/button.d.ts +6 -5
- package/dist/ui/button.js +154 -15
- package/dist/ui/button.js.map +1 -1
- package/dist/ui/chart-view.js +9 -7
- package/dist/ui/chart-view.js.map +1 -1
- package/dist/ui/checkbox.js +1 -1
- package/dist/ui/checkbox.js.map +1 -1
- package/dist/ui/confirm-dialog.d.ts +4 -3
- package/dist/ui/confirm-dialog.js +3 -2
- package/dist/ui/confirm-dialog.js.map +1 -1
- package/dist/ui/control.d.ts +1 -1
- package/dist/ui/control.js +1 -1
- package/dist/ui/control.js.map +1 -1
- package/dist/ui/dialog.js +1 -1
- package/dist/ui/dialog.js.map +1 -1
- package/dist/ui/dropdown-menu.d.ts +2 -2
- package/dist/ui/dropdown-menu.js +2 -2
- package/dist/ui/dropdown-menu.js.map +1 -1
- package/dist/ui/icon-button.d.ts +3 -3
- package/dist/ui/icon-button.js +6 -6
- package/dist/ui/icon-button.js.map +1 -1
- package/dist/ui/image-preview.js +1 -1
- package/dist/ui/image-preview.js.map +1 -1
- package/dist/ui/index.d.ts +2 -2
- package/dist/ui/index.js +2 -2
- package/dist/ui/info-tooltip.js +1 -1
- package/dist/ui/info-tooltip.js.map +1 -1
- package/dist/ui/input-otp.js +1 -1
- package/dist/ui/input-otp.js.map +1 -1
- package/dist/ui/label.js +1 -1
- package/dist/ui/label.js.map +1 -1
- package/dist/ui/password-input.js +1 -1
- package/dist/ui/password-input.js.map +1 -1
- package/dist/ui/progress.js +2 -2
- package/dist/ui/progress.js.map +1 -1
- package/dist/ui/text.js +1 -1
- package/dist/ui/tooltip.js +1 -1
- package/dist/ui/tooltip.js.map +1 -1
- package/dist/vite-typescript-refresh.d.ts +9 -0
- package/dist/vite-typescript-refresh.js +47 -0
- package/dist/vite-typescript-refresh.js.map +1 -0
- package/dist/vite.d.ts +22 -1
- package/dist/vite.js +60 -7
- package/dist/vite.js.map +1 -1
- package/dist-standalone/chunks/{chart-view-DEwGTt9d.js → chart-view-8xEKTUJV.js} +1 -1
- package/dist-standalone/chunks/{date-picker-field-CCQ9nWx0.js → date-picker-field-cdhxtVSG.js} +1 -1
- package/dist-standalone/chunks/{rich-editor-field-B9Nv1qia.js → rich-editor-field-47ov3Bny.js} +1 -1
- package/dist-standalone/lattice.css +1 -1
- package/dist-standalone/lattice.js +15 -15
- package/dist-standalone/manifest.json +5 -5
- package/package.json +1 -1
|
@@ -103,6 +103,7 @@ export type EffectOf<TType extends string> = string extends TType ? Effect : {
|
|
|
103
103
|
};
|
|
104
104
|
export type Action = {
|
|
105
105
|
confirmation: Confirmation | null;
|
|
106
|
+
emphasis: Emphasis | null;
|
|
106
107
|
endpoint: string | null;
|
|
107
108
|
form: Node<"form"> | null;
|
|
108
109
|
icon: string | null;
|
|
@@ -112,7 +113,7 @@ export type Action = {
|
|
|
112
113
|
modalSide: Side | null;
|
|
113
114
|
modalWidth: ModalWidth | null;
|
|
114
115
|
ref: string | null;
|
|
115
|
-
variant:
|
|
116
|
+
variant: Variant | null;
|
|
116
117
|
};
|
|
117
118
|
export type ActionGroup = {
|
|
118
119
|
label: string | null;
|
|
@@ -135,6 +136,7 @@ export type Avatar = {
|
|
|
135
136
|
src: string | null;
|
|
136
137
|
};
|
|
137
138
|
export type Badge = {
|
|
139
|
+
color: Color | null;
|
|
138
140
|
label: string;
|
|
139
141
|
};
|
|
140
142
|
export type BadgeColumn = {
|
|
@@ -196,6 +198,7 @@ export type Builder = {
|
|
|
196
198
|
};
|
|
197
199
|
export type BulkAction = {
|
|
198
200
|
confirmation: Confirmation | null;
|
|
201
|
+
emphasis: Emphasis | null;
|
|
199
202
|
endpoint: string | null;
|
|
200
203
|
form: Node<"form"> | null;
|
|
201
204
|
icon: string | null;
|
|
@@ -205,25 +208,25 @@ export type BulkAction = {
|
|
|
205
208
|
modalSide: Side | null;
|
|
206
209
|
modalWidth: ModalWidth | null;
|
|
207
210
|
ref: string | null;
|
|
208
|
-
variant:
|
|
211
|
+
variant: Variant | null;
|
|
209
212
|
};
|
|
210
213
|
export type Button = {
|
|
211
214
|
action: Node<"action"> | Node<"action.bulk"> | null;
|
|
212
215
|
buttonType: ButtonType;
|
|
213
216
|
effects: Effect[];
|
|
217
|
+
emphasis: Emphasis | null;
|
|
214
218
|
href: string | null;
|
|
215
219
|
icon: string | null;
|
|
216
220
|
label: string | null;
|
|
217
221
|
method: HttpMethod | null;
|
|
218
|
-
variant:
|
|
222
|
+
variant: Variant | null;
|
|
219
223
|
};
|
|
220
224
|
export type ButtonType = "button" | "submit" | "reset";
|
|
221
|
-
export type ButtonVariant = "default" | "destructive" | "ghost" | "info" | "link" | "outline" | "secondary" | "success";
|
|
222
225
|
export type Callout = {
|
|
223
226
|
action: Node | null;
|
|
224
227
|
dismissible: boolean;
|
|
225
|
-
message: string;
|
|
226
|
-
title: string | null;
|
|
228
|
+
message: Translatable | string;
|
|
229
|
+
title: Translatable | string | null;
|
|
227
230
|
variant: Variant;
|
|
228
231
|
};
|
|
229
232
|
export type Callouts = Record<string, never>;
|
|
@@ -450,6 +453,8 @@ export type ComponentPropsMap = {
|
|
|
450
453
|
text: Text;
|
|
451
454
|
tooltip: Tooltip;
|
|
452
455
|
topbar: Topbar;
|
|
456
|
+
wizard: Wizard;
|
|
457
|
+
"wizard-step": WizardStep;
|
|
453
458
|
};
|
|
454
459
|
export type Condition = {
|
|
455
460
|
readonly field: string;
|
|
@@ -600,6 +605,7 @@ export type EffectPropsMap = {
|
|
|
600
605
|
toast: Toast;
|
|
601
606
|
"toggle-sidebar": ToggleSidebar;
|
|
602
607
|
};
|
|
608
|
+
export type Emphasis = "solid" | "outline" | "ghost" | "link";
|
|
603
609
|
export type FieldConditions = {
|
|
604
610
|
readonly disabled: Condition[];
|
|
605
611
|
readonly readOnly: Condition[];
|
|
@@ -677,14 +683,15 @@ export type Form = {
|
|
|
677
683
|
status: string | null;
|
|
678
684
|
submitButton: boolean;
|
|
679
685
|
submitButtons: Node<"button">[] | null;
|
|
686
|
+
submitEmphasis: Emphasis | null;
|
|
680
687
|
submitJustify: Justify | null;
|
|
681
688
|
submitLabel: string | null;
|
|
682
|
-
submitVariant:
|
|
689
|
+
submitVariant: Variant | null;
|
|
683
690
|
validationSummaryLabel: string;
|
|
684
691
|
validationTimeout: number | null;
|
|
685
692
|
};
|
|
686
|
-
export type FormFieldNodeType = "field.builder" | "field.checkbox" | "field.choice" | "field.color-picker" | "field.date-input" | "field.date-time-input" | "field.file-upload" | "field.hidden-input" | "field.number-input" | "field.otp" | "field.password-input" | "field.repeater" | "field.rich-editor" | "field.select" | "field.text-input" | "field.textarea" | "field.time-input" | "field.toggle";
|
|
687
|
-
export type FormNodeType = "field.builder" | "field.checkbox" | "field.choice" | "field.color-picker" | "field.date-input" | "field.date-time-input" | "field.file-upload" | "field.hidden-input" | "field.number-input" | "field.otp" | "field.password-input" | "field.repeater" | "field.rich-editor" | "field.select" | "field.text-input" | "field.textarea" | "field.time-input" | "field.toggle" | "form";
|
|
693
|
+
export type FormFieldNodeType = "field.builder" | "field.checkbox" | "field.choice" | "field.color-picker" | "field.date-input" | "field.date-time-input" | "field.file-upload" | "field.hidden-input" | "field.number-input" | "field.otp" | "field.password-input" | "field.repeater" | "field.rich-editor" | "field.select" | "field.text-input" | "field.textarea" | "field.time-input" | "field.toggle" | "wizard" | "wizard-step";
|
|
694
|
+
export type FormNodeType = "field.builder" | "field.checkbox" | "field.choice" | "field.color-picker" | "field.date-input" | "field.date-time-input" | "field.file-upload" | "field.hidden-input" | "field.number-input" | "field.otp" | "field.password-input" | "field.repeater" | "field.rich-editor" | "field.select" | "field.text-input" | "field.textarea" | "field.time-input" | "field.toggle" | "form" | "wizard" | "wizard-step";
|
|
688
695
|
export type Fragment = {
|
|
689
696
|
endpoint: string | null;
|
|
690
697
|
lazy: boolean;
|
|
@@ -830,16 +837,16 @@ export type MoneyColumn = {
|
|
|
830
837
|
toggleable: boolean;
|
|
831
838
|
width: ColumnWidth;
|
|
832
839
|
};
|
|
833
|
-
export type NodeType = "action" | "action.bulk" | "action.group" | "avatar" | "badge" | "breadcrumbs" | "button" | "callouts" | "card" | "chart" | "chat.box" | "chat.part.text" | "chat.part.tool-call" | "collapsible" | "dropdown" | "field.builder" | "field.checkbox" | "field.choice" | "field.color-picker" | "field.date-input" | "field.date-time-input" | "field.file-upload" | "field.hidden-input" | "field.number-input" | "field.otp" | "field.password-input" | "field.repeater" | "field.rich-editor" | "field.select" | "field.text-input" | "field.textarea" | "field.time-input" | "field.toggle" | "floating-panel" | "form" | "fragment" | "grid" | "heading" | "icon" | "image" | "link" | "menu" | "menu-item" | "modal" | "notifications" | "outlet" | "progress" | "raw-block" | "remote.data-list" | "section" | "segmented-control" | "separator" | "sidebar" | "stack" | "tab" | "table" | "tabs" | "text" | "tooltip" | "topbar";
|
|
840
|
+
export type NodeType = "action" | "action.bulk" | "action.group" | "avatar" | "badge" | "breadcrumbs" | "button" | "callouts" | "card" | "chart" | "chat.box" | "chat.part.text" | "chat.part.tool-call" | "collapsible" | "dropdown" | "field.builder" | "field.checkbox" | "field.choice" | "field.color-picker" | "field.date-input" | "field.date-time-input" | "field.file-upload" | "field.hidden-input" | "field.number-input" | "field.otp" | "field.password-input" | "field.repeater" | "field.rich-editor" | "field.select" | "field.text-input" | "field.textarea" | "field.time-input" | "field.toggle" | "floating-panel" | "form" | "fragment" | "grid" | "heading" | "icon" | "image" | "link" | "menu" | "menu-item" | "modal" | "notifications" | "outlet" | "progress" | "raw-block" | "remote.data-list" | "section" | "segmented-control" | "separator" | "sidebar" | "stack" | "tab" | "table" | "tabs" | "text" | "tooltip" | "topbar" | "wizard" | "wizard-step";
|
|
834
841
|
export type NotificationItem = {
|
|
835
842
|
readonly actions: Node[];
|
|
836
|
-
readonly body: string | null;
|
|
843
|
+
readonly body: Translatable | string | null;
|
|
837
844
|
readonly createdAt: string | null;
|
|
838
845
|
readonly href: string | null;
|
|
839
846
|
readonly icon: string | null;
|
|
840
847
|
readonly id: string;
|
|
841
848
|
readonly isRead: boolean;
|
|
842
|
-
readonly title: string | null;
|
|
849
|
+
readonly title: Translatable | string | null;
|
|
843
850
|
readonly variant: Variant | null;
|
|
844
851
|
};
|
|
845
852
|
export type NotificationList = {
|
|
@@ -982,12 +989,12 @@ export type Placement = "top" | "bottom" | "right";
|
|
|
982
989
|
export type Progress = {
|
|
983
990
|
color: Color | null;
|
|
984
991
|
max: number;
|
|
992
|
+
shape: ProgressShape;
|
|
985
993
|
showValue: boolean;
|
|
986
994
|
size: Size;
|
|
987
995
|
value: number;
|
|
988
|
-
variant: ProgressVariant;
|
|
989
996
|
};
|
|
990
|
-
export type
|
|
997
|
+
export type ProgressShape = "bar" | "circle";
|
|
991
998
|
export type RawBlock = {
|
|
992
999
|
html: string;
|
|
993
1000
|
};
|
|
@@ -1063,7 +1070,7 @@ export type RichEditor = {
|
|
|
1063
1070
|
value: unknown;
|
|
1064
1071
|
};
|
|
1065
1072
|
export type RowAction = {
|
|
1066
|
-
|
|
1073
|
+
danger: boolean;
|
|
1067
1074
|
icon: string | null;
|
|
1068
1075
|
key: string;
|
|
1069
1076
|
label: string | null;
|
|
@@ -1376,6 +1383,14 @@ export type UiNodeType = "avatar" | "badge" | "button" | "card" | "chart" | "col
|
|
|
1376
1383
|
export type UnreadCount = {
|
|
1377
1384
|
readonly unreadCount: number;
|
|
1378
1385
|
};
|
|
1379
|
-
export type Variant = "success" | "info" | "warning" | "
|
|
1386
|
+
export type Variant = "primary" | "secondary" | "success" | "info" | "warning" | "danger";
|
|
1380
1387
|
export type Width = "full" | "auto" | "sm" | "md" | "lg" | "fill";
|
|
1388
|
+
export type Wizard = {
|
|
1389
|
+
orientation: Orientation;
|
|
1390
|
+
};
|
|
1391
|
+
export type WizardStep = {
|
|
1392
|
+
description: string | null;
|
|
1393
|
+
label: string;
|
|
1394
|
+
name: string;
|
|
1395
|
+
};
|
|
1381
1396
|
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
|
-
export declare const actionMenuItemClassName = "flex h-lt-control-sm w-full items-center justify-start gap-2 rounded-lt-sm px-2.5 text-left text-sm font-normal text-lt-popover-fg no-underline decoration-transparent shadow-none transition-colors hover:bg-lt-accent/70 hover:text-lt-popover-fg focus-visible:bg-lt-accent/70 focus-visible:text-lt-popover-fg focus-visible:ring-0 focus-visible:outline-none disabled:pointer-events-none disabled:
|
|
2
|
+
export declare const actionMenuItemClassName = "flex h-lt-control-sm w-full items-center justify-start gap-2 rounded-lt-sm px-2.5 text-left text-sm font-normal text-lt-popover-fg no-underline decoration-transparent shadow-none transition-colors hover:bg-lt-accent/70 hover:text-lt-popover-fg focus-visible:bg-lt-accent/70 focus-visible:text-lt-popover-fg focus-visible:ring-0 focus-visible:outline-none disabled:pointer-events-none disabled:text-lt-disabled-fg [&_svg]:size-lt-icon-sm [&_svg]:text-lt-muted-fg";
|
|
3
3
|
export declare function ActionMenuProvider({ children }: {
|
|
4
4
|
children: ReactNode;
|
|
5
5
|
}): import("react").JSX.Element;
|
|
@@ -2,7 +2,7 @@ import { createContext, useContext } from "react";
|
|
|
2
2
|
import { jsx } from "react/jsx-runtime";
|
|
3
3
|
//#region resources/js/ui/action-menu-context.tsx
|
|
4
4
|
var ActionMenuContext = createContext(false);
|
|
5
|
-
var actionMenuItemClassName = "flex h-lt-control-sm w-full items-center justify-start gap-2 rounded-lt-sm px-2.5 text-left text-sm font-normal text-lt-popover-fg no-underline decoration-transparent shadow-none transition-colors hover:bg-lt-accent/70 hover:text-lt-popover-fg focus-visible:bg-lt-accent/70 focus-visible:text-lt-popover-fg focus-visible:ring-0 focus-visible:outline-none disabled:pointer-events-none disabled:
|
|
5
|
+
var actionMenuItemClassName = "flex h-lt-control-sm w-full items-center justify-start gap-2 rounded-lt-sm px-2.5 text-left text-sm font-normal text-lt-popover-fg no-underline decoration-transparent shadow-none transition-colors hover:bg-lt-accent/70 hover:text-lt-popover-fg focus-visible:bg-lt-accent/70 focus-visible:text-lt-popover-fg focus-visible:ring-0 focus-visible:outline-none disabled:pointer-events-none disabled:text-lt-disabled-fg [&_svg]:size-lt-icon-sm [&_svg]:text-lt-muted-fg";
|
|
6
6
|
function ActionMenuProvider({ children }) {
|
|
7
7
|
return /* @__PURE__ */ jsx(ActionMenuContext.Provider, {
|
|
8
8
|
value: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action-menu-context.js","names":[],"sources":["../../resources/js/ui/action-menu-context.tsx"],"sourcesContent":["import { createContext, useContext, type ReactNode } from \"react\";\n\nconst ActionMenuContext = createContext(false);\n\nexport const actionMenuItemClassName =\n \"flex h-lt-control-sm w-full items-center justify-start gap-2 rounded-lt-sm px-2.5 text-left text-sm font-normal text-lt-popover-fg no-underline decoration-transparent shadow-none transition-colors hover:bg-lt-accent/70 hover:text-lt-popover-fg focus-visible:bg-lt-accent/70 focus-visible:text-lt-popover-fg focus-visible:ring-0 focus-visible:outline-none disabled:pointer-events-none disabled:
|
|
1
|
+
{"version":3,"file":"action-menu-context.js","names":[],"sources":["../../resources/js/ui/action-menu-context.tsx"],"sourcesContent":["import { createContext, useContext, type ReactNode } from \"react\";\n\nconst ActionMenuContext = createContext(false);\n\nexport const actionMenuItemClassName =\n \"flex h-lt-control-sm w-full items-center justify-start gap-2 rounded-lt-sm px-2.5 text-left text-sm font-normal text-lt-popover-fg no-underline decoration-transparent shadow-none transition-colors hover:bg-lt-accent/70 hover:text-lt-popover-fg focus-visible:bg-lt-accent/70 focus-visible:text-lt-popover-fg focus-visible:ring-0 focus-visible:outline-none disabled:pointer-events-none disabled:text-lt-disabled-fg [&_svg]:size-lt-icon-sm [&_svg]:text-lt-muted-fg\";\n\nexport function ActionMenuProvider({ children }: { children: ReactNode }) {\n return <ActionMenuContext.Provider value={true}>{children}</ActionMenuContext.Provider>;\n}\n\nexport function useActionMenu(): boolean {\n return useContext(ActionMenuContext);\n}\n"],"mappings":";;;AAEA,IAAM,oBAAoB,cAAc,KAAK;AAE7C,IAAa,0BACX;AAEF,SAAgB,mBAAmB,EAAE,YAAqC;CACxE,OAAO,oBAAC,kBAAkB,UAAnB;EAA4B,OAAO;EAAO;CAAqC,CAAA;AACxF;AAEA,SAAgB,gBAAyB;CACvC,OAAO,WAAW,iBAAiB;AACrC"}
|
package/dist/ui/affix-group.js
CHANGED
|
@@ -25,7 +25,7 @@ function AffixSegment({ affix, side, squared = false }) {
|
|
|
25
25
|
function AffixGroup({ prefix, suffix, end, children }) {
|
|
26
26
|
if (!prefix && !suffix && !end) return children("");
|
|
27
27
|
return /* @__PURE__ */ jsxs("div", {
|
|
28
|
-
className: "group flex w-full rounded-lt-sm transition-[color,box-shadow] has-[:focus-visible]:ring-[
|
|
28
|
+
className: "group flex w-full rounded-lt-sm transition-[color,box-shadow] has-[:focus-visible]:ring-[length:var(--lt-ring-width)] has-[:focus-visible]:ring-lt-ring/50",
|
|
29
29
|
"data-slot": "affix-group",
|
|
30
30
|
children: [
|
|
31
31
|
prefix ? /* @__PURE__ */ jsx(AffixSegment, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"affix-group.js","names":[],"sources":["../../resources/js/ui/affix-group.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport type { Affix } from \"@lattice-php/lattice/types/generated\";\nimport { IconRenderer } from \"@lattice-php/lattice/icons\";\nimport { cn } from \"@lattice-php/lattice/lib/utils\";\n\nfunction AffixSegment({\n affix,\n side,\n squared = false,\n}: {\n affix: Affix;\n side: \"start\" | \"end\";\n squared?: boolean;\n}) {\n return (\n <span\n data-slot={`affix-${side}`}\n className={cn(\n \"inline-flex h-lt-control-md shrink-0 items-center border border-lt-input bg-lt-muted px-3 text-base whitespace-nowrap text-lt-muted-fg\",\n \"group-has-[:focus-visible]:border-lt-ring\",\n side === \"start\" ? \"rounded-l-lt-sm border-r-0\" : \"rounded-r-lt-sm border-l-0\",\n squared && \"rounded-r-none border-r-0\",\n )}\n >\n {affix.icon ? <IconRenderer className=\"size-lt-icon-md\" icon={affix.icon} /> : affix.text}\n </span>\n );\n}\n\n/**\n * Wraps a single-line control in a prefix/suffix input group. The control is a\n * render prop receiving the class names that square the corners adjacent to an\n * affix; with no affixes the control renders untouched.\n *\n * The focus ring lives on the group, not the bare input, so it surrounds the\n * whole control — affixes included — instead of being clipped by the opaque\n * affix segments. The control itself stays the focus target; only its own ring\n * is suppressed.\n */\nexport function AffixGroup({\n prefix,\n suffix,\n end,\n children,\n}: {\n prefix?: Affix | null;\n suffix?: Affix | null;\n end?: ReactNode;\n children: (controlClassName: string) => ReactNode;\n}) {\n if (!prefix && !suffix && !end) {\n return children(\"\");\n }\n\n return (\n <div\n className=\"group flex w-full rounded-lt-sm transition-[color,box-shadow] has-[:focus-visible]:ring-[
|
|
1
|
+
{"version":3,"file":"affix-group.js","names":[],"sources":["../../resources/js/ui/affix-group.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport type { Affix } from \"@lattice-php/lattice/types/generated\";\nimport { IconRenderer } from \"@lattice-php/lattice/icons\";\nimport { cn } from \"@lattice-php/lattice/lib/utils\";\n\nfunction AffixSegment({\n affix,\n side,\n squared = false,\n}: {\n affix: Affix;\n side: \"start\" | \"end\";\n squared?: boolean;\n}) {\n return (\n <span\n data-slot={`affix-${side}`}\n className={cn(\n \"inline-flex h-lt-control-md shrink-0 items-center border border-lt-input bg-lt-muted px-3 text-base whitespace-nowrap text-lt-muted-fg\",\n \"group-has-[:focus-visible]:border-lt-ring\",\n side === \"start\" ? \"rounded-l-lt-sm border-r-0\" : \"rounded-r-lt-sm border-l-0\",\n squared && \"rounded-r-none border-r-0\",\n )}\n >\n {affix.icon ? <IconRenderer className=\"size-lt-icon-md\" icon={affix.icon} /> : affix.text}\n </span>\n );\n}\n\n/**\n * Wraps a single-line control in a prefix/suffix input group. The control is a\n * render prop receiving the class names that square the corners adjacent to an\n * affix; with no affixes the control renders untouched.\n *\n * The focus ring lives on the group, not the bare input, so it surrounds the\n * whole control — affixes included — instead of being clipped by the opaque\n * affix segments. The control itself stays the focus target; only its own ring\n * is suppressed.\n */\nexport function AffixGroup({\n prefix,\n suffix,\n end,\n children,\n}: {\n prefix?: Affix | null;\n suffix?: Affix | null;\n end?: ReactNode;\n children: (controlClassName: string) => ReactNode;\n}) {\n if (!prefix && !suffix && !end) {\n return children(\"\");\n }\n\n return (\n <div\n className=\"group flex w-full rounded-lt-sm transition-[color,box-shadow] has-[:focus-visible]:ring-[length:var(--lt-ring-width)] has-[:focus-visible]:ring-lt-ring/50\"\n data-slot=\"affix-group\"\n >\n {prefix ? <AffixSegment affix={prefix} side=\"start\" /> : null}\n <div className=\"min-w-0 flex-1\">\n {children(\n cn(\n \"focus-visible:ring-0\",\n prefix && \"rounded-l-none\",\n (suffix || end) && \"rounded-r-none\",\n ),\n )}\n </div>\n {suffix ? <AffixSegment affix={suffix} side=\"end\" squared={Boolean(end)} /> : null}\n {end}\n </div>\n );\n}\n"],"mappings":";;;;AAKA,SAAS,aAAa,EACpB,OACA,MACA,UAAU,SAKT;CACD,OACE,oBAAC,QAAD;EACE,aAAW,SAAS;EACpB,WAAW,GACT,0IACA,6CACA,SAAS,UAAU,+BAA+B,8BAClD,WAAW,2BACb;YAEC,MAAM,OAAO,oBAAC,cAAD;GAAc,WAAU;GAAkB,MAAM,MAAM;EAAO,CAAA,IAAI,MAAM;CACjF,CAAA;AAEV;;;;;;;;;;;AAYA,SAAgB,WAAW,EACzB,QACA,QACA,KACA,YAMC;CACD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,KACzB,OAAO,SAAS,EAAE;CAGpB,OACE,qBAAC,OAAD;EACE,WAAU;EACV,aAAU;YAFZ;GAIG,SAAS,oBAAC,cAAD;IAAc,OAAO;IAAQ,MAAK;GAAS,CAAA,IAAI;GACzD,oBAAC,OAAD;IAAK,WAAU;cACZ,SACC,GACE,wBACA,UAAU,mBACT,UAAU,QAAQ,gBACrB,CACF;GACG,CAAA;GACJ,SAAS,oBAAC,cAAD;IAAc,OAAO;IAAQ,MAAK;IAAM,SAAS,QAAQ,GAAG;GAAI,CAAA,IAAI;GAC7E;EACE;;AAET"}
|
package/dist/ui/badge.d.ts
CHANGED
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Color } from '../types/generated.js';
|
|
2
2
|
import { RendererComponent } from '../core/types.js';
|
|
3
3
|
import * as React from "react";
|
|
4
|
-
declare
|
|
5
|
-
|
|
6
|
-
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
7
|
-
declare function Badge({ className, variant, asChild, ...props }: React.ComponentProps<"span"> & VariantProps<typeof badgeVariants> & {
|
|
8
|
-
asChild?: boolean;
|
|
4
|
+
declare function Badge({ color, className, style, ...props }: Omit<React.ComponentProps<"span">, "color"> & {
|
|
5
|
+
color?: Color | string | null;
|
|
9
6
|
}): React.JSX.Element;
|
|
10
7
|
declare const BadgeComponent: RendererComponent<"badge">;
|
|
11
8
|
export default BadgeComponent;
|
|
12
|
-
export { Badge
|
|
9
|
+
export { Badge };
|
package/dist/ui/badge.js
CHANGED
|
@@ -1,31 +1,25 @@
|
|
|
1
1
|
import { cn } from "../lib/utils.js";
|
|
2
|
+
import { coerceColor, namedColor, toneProps } from "../lib/color.js";
|
|
2
3
|
import "react";
|
|
3
4
|
import { jsx } from "react/jsx-runtime";
|
|
4
|
-
import { Slot } from "@radix-ui/react-slot";
|
|
5
|
-
import { cva } from "class-variance-authority";
|
|
6
5
|
//#region resources/js/ui/badge.tsx
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
secondary: "border-transparent bg-lt-secondary text-lt-secondary-fg [a&]:hover:bg-lt-secondary-hover",
|
|
11
|
-
destructive: "border-transparent bg-lt-danger text-lt-danger-fg [a&]:hover:bg-lt-danger-hover focus-visible:ring-lt-danger/20 dark:focus-visible:ring-lt-danger/40 dark:bg-lt-danger/60",
|
|
12
|
-
outline: "border-lt-border text-lt-fg [a&]:hover:bg-lt-accent [a&]:hover:text-lt-accent-fg"
|
|
13
|
-
} },
|
|
14
|
-
defaultVariants: { variant: "default" }
|
|
15
|
-
});
|
|
16
|
-
function Badge({ className, variant, asChild = false, ...props }) {
|
|
17
|
-
return /* @__PURE__ */ jsx(asChild ? Slot : "span", {
|
|
6
|
+
function Badge({ color, className, style, ...props }) {
|
|
7
|
+
const tone = toneProps(coerceColor(color ?? void 0) ?? namedColor("gray"));
|
|
8
|
+
return /* @__PURE__ */ jsx("span", {
|
|
18
9
|
"data-slot": "badge",
|
|
19
|
-
className: cn(
|
|
10
|
+
className: cn("lt-badge", tone.className, className),
|
|
11
|
+
style: {
|
|
12
|
+
...tone.style,
|
|
13
|
+
...style
|
|
14
|
+
},
|
|
20
15
|
...props
|
|
21
16
|
});
|
|
22
17
|
}
|
|
23
18
|
var BadgeComponent = ({ node }) => /* @__PURE__ */ jsx(Badge, {
|
|
24
|
-
|
|
25
|
-
className: "w-fit px-3 py-1",
|
|
19
|
+
color: node.props.color,
|
|
26
20
|
children: node.props.label
|
|
27
21
|
});
|
|
28
22
|
//#endregion
|
|
29
|
-
export { Badge,
|
|
23
|
+
export { Badge, BadgeComponent as default };
|
|
30
24
|
|
|
31
25
|
//# sourceMappingURL=badge.js.map
|
package/dist/ui/badge.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"badge.js","names":[],"sources":["../../resources/js/ui/badge.tsx"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"badge.js","names":[],"sources":["../../resources/js/ui/badge.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cn } from \"@lattice-php/lattice/lib/utils\";\nimport { coerceColor, namedColor, toneProps } from \"@lattice-php/lattice/lib/color\";\nimport type { Color } from \"@lattice-php/lattice/types/generated\";\nimport type { RendererComponent } from \"@lattice-php/lattice/core/types\";\n\nfunction Badge({\n color,\n className,\n style,\n ...props\n}: Omit<React.ComponentProps<\"span\">, \"color\"> & { color?: Color | string | null }) {\n const tone = toneProps(coerceColor(color ?? undefined) ?? namedColor(\"gray\"));\n\n return (\n <span\n data-slot=\"badge\"\n className={cn(\"lt-badge\", tone.className, className)}\n style={{ ...tone.style, ...style }}\n {...props}\n />\n );\n}\n\nconst BadgeComponent: RendererComponent<\"badge\"> = ({ node }) => (\n <Badge color={node.props.color}>{node.props.label}</Badge>\n);\n\nexport default BadgeComponent;\nexport { Badge };\n"],"mappings":";;;;;AAMA,SAAS,MAAM,EACb,OACA,WACA,OACA,GAAG,SAC+E;CAClF,MAAM,OAAO,UAAU,YAAY,SAAS,KAAA,CAAS,KAAK,WAAW,MAAM,CAAC;CAE5E,OACE,oBAAC,QAAD;EACE,aAAU;EACV,WAAW,GAAG,YAAY,KAAK,WAAW,SAAS;EACnD,OAAO;GAAE,GAAG,KAAK;GAAO,GAAG;EAAM;EACjC,GAAI;CACL,CAAA;AAEL;AAEA,IAAM,kBAA8C,EAAE,WACpD,oBAAC,OAAD;CAAO,OAAO,KAAK,MAAM;WAAQ,KAAK,MAAM;AAAa,CAAA"}
|
package/dist/ui/button.d.ts
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { VariantProps } from 'class-variance-authority';
|
|
2
2
|
import { RendererComponent } from '../core/types.js';
|
|
3
|
-
import {
|
|
3
|
+
import { Emphasis, Variant } from '../types/generated.js';
|
|
4
4
|
import * as React from "react";
|
|
5
|
-
export type {
|
|
5
|
+
export type { Emphasis, Variant };
|
|
6
6
|
declare const buttonVariants: (props?: ({
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
emphasis?: "link" | "solid" | "outline" | "ghost" | null | undefined;
|
|
8
|
+
variant?: "primary" | "secondary" | "success" | "info" | "warning" | "danger" | null | undefined;
|
|
9
|
+
size?: "sm" | "md" | "lg" | "icon" | null | undefined;
|
|
9
10
|
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
10
|
-
declare function Button({ className, variant, size, asChild, icon, children, ...props }: React.ComponentProps<"button"> & VariantProps<typeof buttonVariants> & {
|
|
11
|
+
declare function Button({ className, variant, emphasis, size, asChild, icon, children, ...props }: React.ComponentProps<"button"> & VariantProps<typeof buttonVariants> & {
|
|
11
12
|
asChild?: boolean;
|
|
12
13
|
/** Leading icon glyph. Ignored with `asChild` (Slot needs a single child). */
|
|
13
14
|
icon?: string;
|
package/dist/ui/button.js
CHANGED
|
@@ -9,31 +9,165 @@ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
|
9
9
|
import { Slot } from "@radix-ui/react-slot";
|
|
10
10
|
import { cva } from "class-variance-authority";
|
|
11
11
|
//#region resources/js/ui/button.tsx
|
|
12
|
-
var buttonVariants = cva("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-lt-sm text-base font-medium transition-[color,box-shadow] disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-lt-icon-md [&_svg]:shrink-0 outline-none focus-visible:border-lt-ring focus-visible:ring-lt-ring/50 focus-visible:ring-[
|
|
12
|
+
var buttonVariants = cva("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-lt-sm text-base font-medium transition-[color,box-shadow] disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-lt-icon-md [&_svg]:shrink-0 outline-none focus-visible:border-lt-ring focus-visible:ring-lt-ring/50 focus-visible:ring-[length:var(--lt-ring-width)] aria-invalid:ring-lt-danger/20 dark:aria-invalid:ring-lt-danger/40 aria-invalid:border-lt-danger", {
|
|
13
13
|
variants: {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
destructive: "bg-lt-danger text-lt-danger-fg shadow-lt-xs hover:bg-lt-danger-hover active:bg-lt-danger-active focus-visible:ring-lt-danger/20 dark:focus-visible:ring-lt-danger/40 disabled:bg-lt-disabled disabled:text-lt-disabled-fg disabled:shadow-none",
|
|
17
|
-
success: "bg-lt-success text-lt-success-fg shadow-lt-xs hover:bg-lt-success-hover active:bg-lt-success-active disabled:bg-lt-disabled disabled:text-lt-disabled-fg disabled:shadow-none",
|
|
18
|
-
info: "bg-lt-info text-lt-info-fg shadow-lt-xs hover:bg-lt-info-hover active:bg-lt-info-active disabled:bg-lt-disabled disabled:text-lt-disabled-fg disabled:shadow-none",
|
|
14
|
+
emphasis: {
|
|
15
|
+
solid: "shadow-lt-xs disabled:bg-lt-disabled disabled:text-lt-disabled-fg disabled:shadow-none",
|
|
19
16
|
outline: "border border-lt-input bg-lt-bg shadow-lt-xs hover:bg-lt-accent hover:text-lt-accent-fg disabled:bg-lt-disabled disabled:text-lt-disabled-fg disabled:border-transparent disabled:shadow-none",
|
|
20
|
-
secondary: "bg-lt-secondary text-lt-secondary-fg shadow-lt-xs hover:bg-lt-secondary-hover active:bg-lt-secondary-active disabled:bg-lt-disabled disabled:text-lt-disabled-fg disabled:shadow-none",
|
|
21
17
|
ghost: "hover:bg-lt-accent hover:text-lt-accent-fg disabled:text-lt-disabled-fg",
|
|
22
|
-
link: "
|
|
18
|
+
link: "underline-offset-4 hover:underline disabled:text-lt-disabled-fg disabled:no-underline"
|
|
19
|
+
},
|
|
20
|
+
variant: {
|
|
21
|
+
primary: "",
|
|
22
|
+
secondary: "",
|
|
23
|
+
success: "",
|
|
24
|
+
info: "",
|
|
25
|
+
warning: "",
|
|
26
|
+
danger: ""
|
|
23
27
|
},
|
|
24
28
|
size: {
|
|
25
|
-
|
|
29
|
+
md: "h-lt-control-md px-4 py-2 has-[>svg]:px-3",
|
|
26
30
|
sm: "h-lt-control-sm rounded-lt-sm px-3 has-[>svg]:px-2.5",
|
|
27
31
|
lg: "h-lt-control-lg rounded-lt-sm px-6 has-[>svg]:px-4",
|
|
28
32
|
icon: "size-lt-control-md"
|
|
29
33
|
}
|
|
30
34
|
},
|
|
35
|
+
compoundVariants: [
|
|
36
|
+
{
|
|
37
|
+
emphasis: "solid",
|
|
38
|
+
variant: "primary",
|
|
39
|
+
class: "bg-lt-primary text-lt-primary-fg hover:bg-lt-primary-hover active:bg-lt-primary-active"
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
emphasis: "solid",
|
|
43
|
+
variant: "secondary",
|
|
44
|
+
class: "bg-lt-secondary text-lt-secondary-fg hover:bg-lt-secondary-hover active:bg-lt-secondary-active"
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
emphasis: "solid",
|
|
48
|
+
variant: "success",
|
|
49
|
+
class: "bg-lt-success text-lt-success-fg hover:bg-lt-success-hover active:bg-lt-success-active"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
emphasis: "solid",
|
|
53
|
+
variant: "info",
|
|
54
|
+
class: "bg-lt-info text-lt-info-fg hover:bg-lt-info-hover active:bg-lt-info-active"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
emphasis: "solid",
|
|
58
|
+
variant: "warning",
|
|
59
|
+
class: "bg-lt-warning text-lt-warning-fg hover:bg-lt-warning-hover active:bg-lt-warning-active"
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
emphasis: "solid",
|
|
63
|
+
variant: "danger",
|
|
64
|
+
class: "bg-lt-danger text-lt-danger-fg hover:bg-lt-danger-hover active:bg-lt-danger-active focus-visible:ring-lt-danger/20 dark:focus-visible:ring-lt-danger/40"
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
emphasis: "outline",
|
|
68
|
+
variant: "primary",
|
|
69
|
+
class: "border-lt-primary/40 text-lt-primary hover:bg-lt-primary/10 hover:text-lt-primary"
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
emphasis: "outline",
|
|
73
|
+
variant: "secondary",
|
|
74
|
+
class: "border-lt-secondary text-lt-secondary-fg hover:bg-lt-secondary hover:text-lt-secondary-fg"
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
emphasis: "outline",
|
|
78
|
+
variant: "success",
|
|
79
|
+
class: "border-lt-success/40 text-lt-success hover:bg-lt-success/10 hover:text-lt-success"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
emphasis: "outline",
|
|
83
|
+
variant: "info",
|
|
84
|
+
class: "border-lt-info/40 text-lt-info hover:bg-lt-info/10 hover:text-lt-info"
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
emphasis: "outline",
|
|
88
|
+
variant: "warning",
|
|
89
|
+
class: "border-lt-warning/40 text-lt-warning hover:bg-lt-warning/10 hover:text-lt-warning"
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
emphasis: "outline",
|
|
93
|
+
variant: "danger",
|
|
94
|
+
class: "border-lt-danger/40 text-lt-danger hover:bg-lt-danger/10 hover:text-lt-danger"
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
emphasis: "ghost",
|
|
98
|
+
variant: "primary",
|
|
99
|
+
class: "text-lt-primary hover:bg-lt-primary/10 hover:text-lt-primary"
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
emphasis: "ghost",
|
|
103
|
+
variant: "secondary",
|
|
104
|
+
class: "text-lt-secondary-fg hover:bg-lt-secondary hover:text-lt-secondary-fg"
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
emphasis: "ghost",
|
|
108
|
+
variant: "success",
|
|
109
|
+
class: "text-lt-success hover:bg-lt-success/10 hover:text-lt-success"
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
emphasis: "ghost",
|
|
113
|
+
variant: "info",
|
|
114
|
+
class: "text-lt-info hover:bg-lt-info/10 hover:text-lt-info"
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
emphasis: "ghost",
|
|
118
|
+
variant: "warning",
|
|
119
|
+
class: "text-lt-warning hover:bg-lt-warning/10 hover:text-lt-warning"
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
emphasis: "ghost",
|
|
123
|
+
variant: "danger",
|
|
124
|
+
class: "text-lt-danger hover:bg-lt-danger/10 hover:text-lt-danger"
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
emphasis: "link",
|
|
128
|
+
variant: "primary",
|
|
129
|
+
class: "text-lt-primary"
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
emphasis: "link",
|
|
133
|
+
variant: "secondary",
|
|
134
|
+
class: "text-lt-secondary-fg"
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
emphasis: "link",
|
|
138
|
+
variant: "success",
|
|
139
|
+
class: "text-lt-success"
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
emphasis: "link",
|
|
143
|
+
variant: "info",
|
|
144
|
+
class: "text-lt-info"
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
emphasis: "link",
|
|
148
|
+
variant: "warning",
|
|
149
|
+
class: "text-lt-warning"
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
emphasis: "link",
|
|
153
|
+
variant: "danger",
|
|
154
|
+
class: "text-lt-danger"
|
|
155
|
+
}
|
|
156
|
+
],
|
|
31
157
|
defaultVariants: {
|
|
32
|
-
|
|
33
|
-
size: "
|
|
158
|
+
emphasis: "solid",
|
|
159
|
+
size: "md"
|
|
34
160
|
}
|
|
35
161
|
});
|
|
36
|
-
|
|
162
|
+
/**
|
|
163
|
+
* Solid and link buttons read as primary when no variant is given; outline and
|
|
164
|
+
* ghost stay neutral so chrome buttons do not turn teal by default.
|
|
165
|
+
*/
|
|
166
|
+
function resolveButtonVariant(emphasis, variant) {
|
|
167
|
+
if (variant) return variant;
|
|
168
|
+
return (emphasis ?? "solid") === "solid" || emphasis === "link" ? "primary" : void 0;
|
|
169
|
+
}
|
|
170
|
+
function Button({ className, variant, emphasis, size, asChild = false, icon, children, ...props }) {
|
|
37
171
|
const Comp = asChild ? Slot : "button";
|
|
38
172
|
const content = icon && !asChild ? /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(Icon, {
|
|
39
173
|
name: icon,
|
|
@@ -42,7 +176,8 @@ function Button({ className, variant, size, asChild = false, icon, children, ...
|
|
|
42
176
|
return /* @__PURE__ */ jsx(Comp, {
|
|
43
177
|
"data-slot": "button",
|
|
44
178
|
className: cn(buttonVariants({
|
|
45
|
-
|
|
179
|
+
emphasis,
|
|
180
|
+
variant: resolveButtonVariant(emphasis, variant),
|
|
46
181
|
size,
|
|
47
182
|
className
|
|
48
183
|
})),
|
|
@@ -52,10 +187,11 @@ function Button({ className, variant, size, asChild = false, icon, children, ...
|
|
|
52
187
|
}
|
|
53
188
|
var ButtonComponent = ({ node }) => {
|
|
54
189
|
const { label, icon } = node.props;
|
|
55
|
-
const variant = node.props.variant ??
|
|
190
|
+
const variant = node.props.variant ?? null;
|
|
191
|
+
const emphasis = node.props.emphasis ?? "solid";
|
|
56
192
|
const testId = nodeIdentity(node);
|
|
57
193
|
const behavior = useClickBehavior(node.props);
|
|
58
|
-
const size = icon ? "icon" : "
|
|
194
|
+
const size = icon ? "icon" : "md";
|
|
59
195
|
const content = icon ? /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(IconRenderer, {
|
|
60
196
|
className: "size-lt-icon-md",
|
|
61
197
|
icon
|
|
@@ -66,6 +202,7 @@ var ButtonComponent = ({ node }) => {
|
|
|
66
202
|
const triggerButton = ({ onClick, processing }) => /* @__PURE__ */ jsx(Button, {
|
|
67
203
|
"data-test": testId,
|
|
68
204
|
disabled: processing,
|
|
205
|
+
emphasis,
|
|
69
206
|
onClick,
|
|
70
207
|
size,
|
|
71
208
|
variant,
|
|
@@ -74,6 +211,7 @@ var ButtonComponent = ({ node }) => {
|
|
|
74
211
|
if (behavior.kind === "navigate") return /* @__PURE__ */ jsx(Button, {
|
|
75
212
|
asChild: true,
|
|
76
213
|
"data-test": testId,
|
|
214
|
+
emphasis,
|
|
77
215
|
variant,
|
|
78
216
|
size,
|
|
79
217
|
children: /* @__PURE__ */ jsx(Link, {
|
|
@@ -92,6 +230,7 @@ var ButtonComponent = ({ node }) => {
|
|
|
92
230
|
});
|
|
93
231
|
return /* @__PURE__ */ jsx(Button, {
|
|
94
232
|
"data-test": testId,
|
|
233
|
+
emphasis,
|
|
95
234
|
size,
|
|
96
235
|
type: node.props.buttonType,
|
|
97
236
|
variant,
|
package/dist/ui/button.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button.js","names":[],"sources":["../../resources/js/ui/button.tsx"],"sourcesContent":["import { Link } from \"@inertiajs/react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport * as React from \"react\";\nimport { cn } from \"@lattice-php/lattice/lib/utils\";\nimport { Icon, IconRenderer } from \"@lattice-php/lattice/icons\";\nimport { nodeIdentity } from \"@lattice-php/lattice/core/test-id\";\nimport type { RendererComponent } from \"@lattice-php/lattice/core/types\";\nimport { ActionTrigger, type TriggerState, useClickBehavior } from \"./click-behavior\";\nimport type { ButtonVariant } from \"@lattice-php/lattice/types/generated\";\n\nexport type { ButtonVariant };\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-lt-sm text-base font-medium transition-[color,box-shadow] disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-lt-icon-md [&_svg]:shrink-0 outline-none focus-visible:border-lt-ring focus-visible:ring-lt-ring/50 focus-visible:ring-[3px] aria-invalid:ring-lt-danger/20 dark:aria-invalid:ring-lt-danger/40 aria-invalid:border-lt-danger\",\n {\n variants: {\n variant: {\n default:\n \"bg-lt-primary text-lt-primary-fg shadow-lt-xs hover:bg-lt-primary-hover active:bg-lt-primary-active disabled:bg-lt-disabled disabled:text-lt-disabled-fg disabled:shadow-none\",\n destructive:\n \"bg-lt-danger text-lt-danger-fg shadow-lt-xs hover:bg-lt-danger-hover active:bg-lt-danger-active focus-visible:ring-lt-danger/20 dark:focus-visible:ring-lt-danger/40 disabled:bg-lt-disabled disabled:text-lt-disabled-fg disabled:shadow-none\",\n success:\n \"bg-lt-success text-lt-success-fg shadow-lt-xs hover:bg-lt-success-hover active:bg-lt-success-active disabled:bg-lt-disabled disabled:text-lt-disabled-fg disabled:shadow-none\",\n info: \"bg-lt-info text-lt-info-fg shadow-lt-xs hover:bg-lt-info-hover active:bg-lt-info-active disabled:bg-lt-disabled disabled:text-lt-disabled-fg disabled:shadow-none\",\n outline:\n \"border border-lt-input bg-lt-bg shadow-lt-xs hover:bg-lt-accent hover:text-lt-accent-fg disabled:bg-lt-disabled disabled:text-lt-disabled-fg disabled:border-transparent disabled:shadow-none\",\n secondary:\n \"bg-lt-secondary text-lt-secondary-fg shadow-lt-xs hover:bg-lt-secondary-hover active:bg-lt-secondary-active disabled:bg-lt-disabled disabled:text-lt-disabled-fg disabled:shadow-none\",\n ghost: \"hover:bg-lt-accent hover:text-lt-accent-fg disabled:text-lt-disabled-fg\",\n link: \"text-lt-primary underline-offset-4 hover:underline disabled:text-lt-disabled-fg disabled:no-underline\",\n },\n size: {\n default: \"h-lt-control-md px-4 py-2 has-[>svg]:px-3\",\n sm: \"h-lt-control-sm rounded-lt-sm px-3 has-[>svg]:px-2.5\",\n lg: \"h-lt-control-lg rounded-lt-sm px-6 has-[>svg]:px-4\",\n icon: \"size-lt-control-md\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\nfunction Button({\n className,\n variant,\n size,\n asChild = false,\n icon,\n children,\n ...props\n}: React.ComponentProps<\"button\"> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean;\n /** Leading icon glyph. Ignored with `asChild` (Slot needs a single child). */\n icon?: string;\n }) {\n const Comp = asChild ? Slot : \"button\";\n const content =\n icon && !asChild ? (\n <>\n <Icon name={icon} aria-hidden=\"true\" />\n {children}\n </>\n ) : (\n children\n );\n\n return (\n <Comp\n data-slot=\"button\"\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n >\n {content}\n </Comp>\n );\n}\n\nconst ButtonComponent: RendererComponent<\"button\"> = ({ node }) => {\n const { label, icon } = node.props;\n const variant = node.props.variant ?? \"default\";\n const testId = nodeIdentity(node);\n const behavior = useClickBehavior(node.props);\n const size = icon ? \"icon\" : \"default\";\n const content = icon ? (\n <>\n <IconRenderer className=\"size-lt-icon-md\" icon={icon} />\n {label ? <span className=\"sr-only\">{label}</span> : null}\n </>\n ) : (\n label\n );\n\n const triggerButton = ({ onClick, processing }: TriggerState) => (\n <Button\n data-test={testId}\n disabled={processing}\n onClick={onClick}\n size={size}\n variant={variant}\n >\n {content}\n </Button>\n );\n\n if (behavior.kind === \"navigate\") {\n return (\n <Button asChild data-test={testId} variant={variant} size={size}>\n <Link href={behavior.href} method={behavior.method}>\n {content}\n </Link>\n </Button>\n );\n }\n\n if (behavior.kind === \"action\") {\n return <ActionTrigger action={behavior.action}>{triggerButton}</ActionTrigger>;\n }\n\n if (behavior.kind === \"effects\") {\n return triggerButton({ onClick: behavior.onClick, processing: false });\n }\n\n return (\n <Button data-test={testId} size={size} type={node.props.buttonType} variant={variant}>\n {content}\n </Button>\n );\n};\n\nexport default ButtonComponent;\nexport { Button, buttonVariants };\n"],"mappings":";;;;;;;;;;;AAaA,IAAM,iBAAiB,IACrB,+bACA;CACE,UAAU;EACR,SAAS;GACP,SACE;GACF,aACE;GACF,SACE;GACF,MAAM;GACN,SACE;GACF,WACE;GACF,OAAO;GACP,MAAM;EACR;EACA,MAAM;GACJ,SAAS;GACT,IAAI;GACJ,IAAI;GACJ,MAAM;EACR;CACF;CACA,iBAAiB;EACf,SAAS;EACT,MAAM;CACR;AACF,CACF;AAEA,SAAS,OAAO,EACd,WACA,SACA,MACA,UAAU,OACV,MACA,UACA,GAAG,SAMA;CACH,MAAM,OAAO,UAAU,OAAO;CAC9B,MAAM,UACJ,QAAQ,CAAC,UACP,qBAAA,YAAA,EAAA,UAAA,CACE,oBAAC,MAAD;EAAM,MAAM;EAAM,eAAY;CAAQ,CAAA,GACrC,QACD,EAAA,CAAA,IAEF;CAGJ,OACE,oBAAC,MAAD;EACE,aAAU;EACV,WAAW,GAAG,eAAe;GAAE;GAAS;GAAM;EAAU,CAAC,CAAC;EAC1D,GAAI;YAEH;CACG,CAAA;AAEV;AAEA,IAAM,mBAAgD,EAAE,WAAW;CACjE,MAAM,EAAE,OAAO,SAAS,KAAK;CAC7B,MAAM,UAAU,KAAK,MAAM,WAAW;CACtC,MAAM,SAAS,aAAa,IAAI;CAChC,MAAM,WAAW,iBAAiB,KAAK,KAAK;CAC5C,MAAM,OAAO,OAAO,SAAS;CAC7B,MAAM,UAAU,OACd,qBAAA,YAAA,EAAA,UAAA,CACE,oBAAC,cAAD;EAAc,WAAU;EAAwB;CAAO,CAAA,GACtD,QAAQ,oBAAC,QAAD;EAAM,WAAU;YAAW;CAAY,CAAA,IAAI,IACpD,EAAA,CAAA,IAEF;CAGF,MAAM,iBAAiB,EAAE,SAAS,iBAChC,oBAAC,QAAD;EACE,aAAW;EACX,UAAU;EACD;EACH;EACG;YAER;CACK,CAAA;CAGV,IAAI,SAAS,SAAS,YACpB,OACE,oBAAC,QAAD;EAAQ,SAAA;EAAQ,aAAW;EAAiB;EAAe;YACzD,oBAAC,MAAD;GAAM,MAAM,SAAS;GAAM,QAAQ,SAAS;aACzC;EACG,CAAA;CACA,CAAA;CAIZ,IAAI,SAAS,SAAS,UACpB,OAAO,oBAAC,eAAD;EAAe,QAAQ,SAAS;YAAS;CAA6B,CAAA;CAG/E,IAAI,SAAS,SAAS,WACpB,OAAO,cAAc;EAAE,SAAS,SAAS;EAAS,YAAY;CAAM,CAAC;CAGvE,OACE,oBAAC,QAAD;EAAQ,aAAW;EAAc;EAAM,MAAM,KAAK,MAAM;EAAqB;YAC1E;CACK,CAAA;AAEZ"}
|
|
1
|
+
{"version":3,"file":"button.js","names":[],"sources":["../../resources/js/ui/button.tsx"],"sourcesContent":["import { Link } from \"@inertiajs/react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport * as React from \"react\";\nimport { cn } from \"@lattice-php/lattice/lib/utils\";\nimport { Icon, IconRenderer } from \"@lattice-php/lattice/icons\";\nimport { nodeIdentity } from \"@lattice-php/lattice/core/test-id\";\nimport type { RendererComponent } from \"@lattice-php/lattice/core/types\";\nimport { ActionTrigger, type TriggerState, useClickBehavior } from \"./click-behavior\";\nimport type { Emphasis, Variant } from \"@lattice-php/lattice/types/generated\";\n\nexport type { Emphasis, Variant };\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-lt-sm text-base font-medium transition-[color,box-shadow] disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-lt-icon-md [&_svg]:shrink-0 outline-none focus-visible:border-lt-ring focus-visible:ring-lt-ring/50 focus-visible:ring-[length:var(--lt-ring-width)] aria-invalid:ring-lt-danger/20 dark:aria-invalid:ring-lt-danger/40 aria-invalid:border-lt-danger\",\n {\n variants: {\n emphasis: {\n solid:\n \"shadow-lt-xs disabled:bg-lt-disabled disabled:text-lt-disabled-fg disabled:shadow-none\",\n outline:\n \"border border-lt-input bg-lt-bg shadow-lt-xs hover:bg-lt-accent hover:text-lt-accent-fg disabled:bg-lt-disabled disabled:text-lt-disabled-fg disabled:border-transparent disabled:shadow-none\",\n ghost: \"hover:bg-lt-accent hover:text-lt-accent-fg disabled:text-lt-disabled-fg\",\n link: \"underline-offset-4 hover:underline disabled:text-lt-disabled-fg disabled:no-underline\",\n },\n variant: {\n primary: \"\",\n secondary: \"\",\n success: \"\",\n info: \"\",\n warning: \"\",\n danger: \"\",\n },\n size: {\n md: \"h-lt-control-md px-4 py-2 has-[>svg]:px-3\",\n sm: \"h-lt-control-sm rounded-lt-sm px-3 has-[>svg]:px-2.5\",\n lg: \"h-lt-control-lg rounded-lt-sm px-6 has-[>svg]:px-4\",\n icon: \"size-lt-control-md\",\n },\n },\n compoundVariants: [\n {\n emphasis: \"solid\",\n variant: \"primary\",\n class:\n \"bg-lt-primary text-lt-primary-fg hover:bg-lt-primary-hover active:bg-lt-primary-active\",\n },\n {\n emphasis: \"solid\",\n variant: \"secondary\",\n class:\n \"bg-lt-secondary text-lt-secondary-fg hover:bg-lt-secondary-hover active:bg-lt-secondary-active\",\n },\n {\n emphasis: \"solid\",\n variant: \"success\",\n class:\n \"bg-lt-success text-lt-success-fg hover:bg-lt-success-hover active:bg-lt-success-active\",\n },\n {\n emphasis: \"solid\",\n variant: \"info\",\n class: \"bg-lt-info text-lt-info-fg hover:bg-lt-info-hover active:bg-lt-info-active\",\n },\n {\n emphasis: \"solid\",\n variant: \"warning\",\n class:\n \"bg-lt-warning text-lt-warning-fg hover:bg-lt-warning-hover active:bg-lt-warning-active\",\n },\n {\n emphasis: \"solid\",\n variant: \"danger\",\n class:\n \"bg-lt-danger text-lt-danger-fg hover:bg-lt-danger-hover active:bg-lt-danger-active focus-visible:ring-lt-danger/20 dark:focus-visible:ring-lt-danger/40\",\n },\n {\n emphasis: \"outline\",\n variant: \"primary\",\n class: \"border-lt-primary/40 text-lt-primary hover:bg-lt-primary/10 hover:text-lt-primary\",\n },\n {\n emphasis: \"outline\",\n variant: \"secondary\",\n class:\n \"border-lt-secondary text-lt-secondary-fg hover:bg-lt-secondary hover:text-lt-secondary-fg\",\n },\n {\n emphasis: \"outline\",\n variant: \"success\",\n class: \"border-lt-success/40 text-lt-success hover:bg-lt-success/10 hover:text-lt-success\",\n },\n {\n emphasis: \"outline\",\n variant: \"info\",\n class: \"border-lt-info/40 text-lt-info hover:bg-lt-info/10 hover:text-lt-info\",\n },\n {\n emphasis: \"outline\",\n variant: \"warning\",\n class: \"border-lt-warning/40 text-lt-warning hover:bg-lt-warning/10 hover:text-lt-warning\",\n },\n {\n emphasis: \"outline\",\n variant: \"danger\",\n class: \"border-lt-danger/40 text-lt-danger hover:bg-lt-danger/10 hover:text-lt-danger\",\n },\n {\n emphasis: \"ghost\",\n variant: \"primary\",\n class: \"text-lt-primary hover:bg-lt-primary/10 hover:text-lt-primary\",\n },\n {\n emphasis: \"ghost\",\n variant: \"secondary\",\n class: \"text-lt-secondary-fg hover:bg-lt-secondary hover:text-lt-secondary-fg\",\n },\n {\n emphasis: \"ghost\",\n variant: \"success\",\n class: \"text-lt-success hover:bg-lt-success/10 hover:text-lt-success\",\n },\n {\n emphasis: \"ghost\",\n variant: \"info\",\n class: \"text-lt-info hover:bg-lt-info/10 hover:text-lt-info\",\n },\n {\n emphasis: \"ghost\",\n variant: \"warning\",\n class: \"text-lt-warning hover:bg-lt-warning/10 hover:text-lt-warning\",\n },\n {\n emphasis: \"ghost\",\n variant: \"danger\",\n class: \"text-lt-danger hover:bg-lt-danger/10 hover:text-lt-danger\",\n },\n { emphasis: \"link\", variant: \"primary\", class: \"text-lt-primary\" },\n { emphasis: \"link\", variant: \"secondary\", class: \"text-lt-secondary-fg\" },\n { emphasis: \"link\", variant: \"success\", class: \"text-lt-success\" },\n { emphasis: \"link\", variant: \"info\", class: \"text-lt-info\" },\n { emphasis: \"link\", variant: \"warning\", class: \"text-lt-warning\" },\n { emphasis: \"link\", variant: \"danger\", class: \"text-lt-danger\" },\n ],\n defaultVariants: {\n emphasis: \"solid\",\n size: \"md\",\n },\n },\n);\n\n/**\n * Solid and link buttons read as primary when no variant is given; outline and\n * ghost stay neutral so chrome buttons do not turn teal by default.\n */\nfunction resolveButtonVariant(\n emphasis: Emphasis | null | undefined,\n variant: Variant | null | undefined,\n): Variant | undefined {\n if (variant) {\n return variant;\n }\n\n return (emphasis ?? \"solid\") === \"solid\" || emphasis === \"link\" ? \"primary\" : undefined;\n}\n\nfunction Button({\n className,\n variant,\n emphasis,\n size,\n asChild = false,\n icon,\n children,\n ...props\n}: React.ComponentProps<\"button\"> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean;\n /** Leading icon glyph. Ignored with `asChild` (Slot needs a single child). */\n icon?: string;\n }) {\n const Comp = asChild ? Slot : \"button\";\n const content =\n icon && !asChild ? (\n <>\n <Icon name={icon} aria-hidden=\"true\" />\n {children}\n </>\n ) : (\n children\n );\n\n return (\n <Comp\n data-slot=\"button\"\n className={cn(\n buttonVariants({\n emphasis,\n variant: resolveButtonVariant(emphasis, variant),\n size,\n className,\n }),\n )}\n {...props}\n >\n {content}\n </Comp>\n );\n}\n\nconst ButtonComponent: RendererComponent<\"button\"> = ({ node }) => {\n const { label, icon } = node.props;\n const variant = node.props.variant ?? null;\n const emphasis = node.props.emphasis ?? \"solid\";\n const testId = nodeIdentity(node);\n const behavior = useClickBehavior(node.props);\n const size = icon ? \"icon\" : \"md\";\n const content = icon ? (\n <>\n <IconRenderer className=\"size-lt-icon-md\" icon={icon} />\n {label ? <span className=\"sr-only\">{label}</span> : null}\n </>\n ) : (\n label\n );\n\n const triggerButton = ({ onClick, processing }: TriggerState) => (\n <Button\n data-test={testId}\n disabled={processing}\n emphasis={emphasis}\n onClick={onClick}\n size={size}\n variant={variant}\n >\n {content}\n </Button>\n );\n\n if (behavior.kind === \"navigate\") {\n return (\n <Button asChild data-test={testId} emphasis={emphasis} variant={variant} size={size}>\n <Link href={behavior.href} method={behavior.method}>\n {content}\n </Link>\n </Button>\n );\n }\n\n if (behavior.kind === \"action\") {\n return <ActionTrigger action={behavior.action}>{triggerButton}</ActionTrigger>;\n }\n\n if (behavior.kind === \"effects\") {\n return triggerButton({ onClick: behavior.onClick, processing: false });\n }\n\n return (\n <Button\n data-test={testId}\n emphasis={emphasis}\n size={size}\n type={node.props.buttonType}\n variant={variant}\n >\n {content}\n </Button>\n );\n};\n\nexport default ButtonComponent;\nexport { Button, buttonVariants };\n"],"mappings":";;;;;;;;;;;AAaA,IAAM,iBAAiB,IACrB,udACA;CACE,UAAU;EACR,UAAU;GACR,OACE;GACF,SACE;GACF,OAAO;GACP,MAAM;EACR;EACA,SAAS;GACP,SAAS;GACT,WAAW;GACX,SAAS;GACT,MAAM;GACN,SAAS;GACT,QAAQ;EACV;EACA,MAAM;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,MAAM;EACR;CACF;CACA,kBAAkB;EAChB;GACE,UAAU;GACV,SAAS;GACT,OACE;EACJ;EACA;GACE,UAAU;GACV,SAAS;GACT,OACE;EACJ;EACA;GACE,UAAU;GACV,SAAS;GACT,OACE;EACJ;EACA;GACE,UAAU;GACV,SAAS;GACT,OAAO;EACT;EACA;GACE,UAAU;GACV,SAAS;GACT,OACE;EACJ;EACA;GACE,UAAU;GACV,SAAS;GACT,OACE;EACJ;EACA;GACE,UAAU;GACV,SAAS;GACT,OAAO;EACT;EACA;GACE,UAAU;GACV,SAAS;GACT,OACE;EACJ;EACA;GACE,UAAU;GACV,SAAS;GACT,OAAO;EACT;EACA;GACE,UAAU;GACV,SAAS;GACT,OAAO;EACT;EACA;GACE,UAAU;GACV,SAAS;GACT,OAAO;EACT;EACA;GACE,UAAU;GACV,SAAS;GACT,OAAO;EACT;EACA;GACE,UAAU;GACV,SAAS;GACT,OAAO;EACT;EACA;GACE,UAAU;GACV,SAAS;GACT,OAAO;EACT;EACA;GACE,UAAU;GACV,SAAS;GACT,OAAO;EACT;EACA;GACE,UAAU;GACV,SAAS;GACT,OAAO;EACT;EACA;GACE,UAAU;GACV,SAAS;GACT,OAAO;EACT;EACA;GACE,UAAU;GACV,SAAS;GACT,OAAO;EACT;EACA;GAAE,UAAU;GAAQ,SAAS;GAAW,OAAO;EAAkB;EACjE;GAAE,UAAU;GAAQ,SAAS;GAAa,OAAO;EAAuB;EACxE;GAAE,UAAU;GAAQ,SAAS;GAAW,OAAO;EAAkB;EACjE;GAAE,UAAU;GAAQ,SAAS;GAAQ,OAAO;EAAe;EAC3D;GAAE,UAAU;GAAQ,SAAS;GAAW,OAAO;EAAkB;EACjE;GAAE,UAAU;GAAQ,SAAS;GAAU,OAAO;EAAiB;CACjE;CACA,iBAAiB;EACf,UAAU;EACV,MAAM;CACR;AACF,CACF;;;;;AAMA,SAAS,qBACP,UACA,SACqB;CACrB,IAAI,SACF,OAAO;CAGT,QAAQ,YAAY,aAAa,WAAW,aAAa,SAAS,YAAY,KAAA;AAChF;AAEA,SAAS,OAAO,EACd,WACA,SACA,UACA,MACA,UAAU,OACV,MACA,UACA,GAAG,SAMA;CACH,MAAM,OAAO,UAAU,OAAO;CAC9B,MAAM,UACJ,QAAQ,CAAC,UACP,qBAAA,YAAA,EAAA,UAAA,CACE,oBAAC,MAAD;EAAM,MAAM;EAAM,eAAY;CAAQ,CAAA,GACrC,QACD,EAAA,CAAA,IAEF;CAGJ,OACE,oBAAC,MAAD;EACE,aAAU;EACV,WAAW,GACT,eAAe;GACb;GACA,SAAS,qBAAqB,UAAU,OAAO;GAC/C;GACA;EACF,CAAC,CACH;EACA,GAAI;YAEH;CACG,CAAA;AAEV;AAEA,IAAM,mBAAgD,EAAE,WAAW;CACjE,MAAM,EAAE,OAAO,SAAS,KAAK;CAC7B,MAAM,UAAU,KAAK,MAAM,WAAW;CACtC,MAAM,WAAW,KAAK,MAAM,YAAY;CACxC,MAAM,SAAS,aAAa,IAAI;CAChC,MAAM,WAAW,iBAAiB,KAAK,KAAK;CAC5C,MAAM,OAAO,OAAO,SAAS;CAC7B,MAAM,UAAU,OACd,qBAAA,YAAA,EAAA,UAAA,CACE,oBAAC,cAAD;EAAc,WAAU;EAAwB;CAAO,CAAA,GACtD,QAAQ,oBAAC,QAAD;EAAM,WAAU;YAAW;CAAY,CAAA,IAAI,IACpD,EAAA,CAAA,IAEF;CAGF,MAAM,iBAAiB,EAAE,SAAS,iBAChC,oBAAC,QAAD;EACE,aAAW;EACX,UAAU;EACA;EACD;EACH;EACG;YAER;CACK,CAAA;CAGV,IAAI,SAAS,SAAS,YACpB,OACE,oBAAC,QAAD;EAAQ,SAAA;EAAQ,aAAW;EAAkB;EAAmB;EAAe;YAC7E,oBAAC,MAAD;GAAM,MAAM,SAAS;GAAM,QAAQ,SAAS;aACzC;EACG,CAAA;CACA,CAAA;CAIZ,IAAI,SAAS,SAAS,UACpB,OAAO,oBAAC,eAAD;EAAe,QAAQ,SAAS;YAAS;CAA6B,CAAA;CAG/E,IAAI,SAAS,SAAS,WACpB,OAAO,cAAc;EAAE,SAAS,SAAS;EAAS,YAAY;CAAM,CAAC;CAGvE,OACE,oBAAC,QAAD;EACE,aAAW;EACD;EACJ;EACN,MAAM,KAAK,MAAM;EACR;YAER;CACK,CAAA;AAEZ"}
|
package/dist/ui/chart-view.js
CHANGED
|
@@ -38,15 +38,17 @@ var tooltipProps = {
|
|
|
38
38
|
labelStyle: { color: "var(--lt-muted-fg)" }
|
|
39
39
|
};
|
|
40
40
|
var palette = [
|
|
41
|
-
"var(--lt-
|
|
42
|
-
"var(--lt-
|
|
43
|
-
"var(--lt-
|
|
44
|
-
"var(--lt-
|
|
45
|
-
"var(--lt-
|
|
46
|
-
"var(--lt-
|
|
41
|
+
"var(--lt-chart-1)",
|
|
42
|
+
"var(--lt-chart-2)",
|
|
43
|
+
"var(--lt-chart-3)",
|
|
44
|
+
"var(--lt-chart-4)",
|
|
45
|
+
"var(--lt-chart-5)",
|
|
46
|
+
"var(--lt-chart-6)",
|
|
47
|
+
"var(--lt-chart-7)",
|
|
48
|
+
"var(--lt-chart-8)"
|
|
47
49
|
];
|
|
48
50
|
function colorAt(index) {
|
|
49
|
-
return palette[index % palette.length] ?? "var(--lt-
|
|
51
|
+
return palette[index % palette.length] ?? "var(--lt-chart-1)";
|
|
50
52
|
}
|
|
51
53
|
function datumColor(datum, series, index) {
|
|
52
54
|
if (isRecord(datum)) {
|