@snksergio/design-system 0.55.0 → 0.56.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-lib/index.cjs +2517 -3
- package/dist-lib/index.cjs.map +1 -1
- package/dist-lib/index.mjs +2530 -16
- package/dist-lib/index.mjs.map +1 -1
- package/dist-lib/src/components/index.d.ts +1 -0
- package/dist-lib/src/components/index.d.ts.map +1 -1
- package/dist-lib/src/components/ui/Scheduler/hooks/layout.d.ts +165 -0
- package/dist-lib/src/components/ui/Scheduler/hooks/layout.d.ts.map +1 -0
- package/dist-lib/src/components/ui/Scheduler/hooks/use-media-query.d.ts +21 -0
- package/dist-lib/src/components/ui/Scheduler/hooks/use-media-query.d.ts.map +1 -0
- package/dist-lib/src/components/ui/Scheduler/hooks/use-scheduler-dnd.d.ts +41 -0
- package/dist-lib/src/components/ui/Scheduler/hooks/use-scheduler-dnd.d.ts.map +1 -0
- package/dist-lib/src/components/ui/Scheduler/hooks/use-scheduler-filter.d.ts +35 -0
- package/dist-lib/src/components/ui/Scheduler/hooks/use-scheduler-filter.d.ts.map +1 -0
- package/dist-lib/src/components/ui/Scheduler/hooks/use-scheduler-keyboard.d.ts +47 -0
- package/dist-lib/src/components/ui/Scheduler/hooks/use-scheduler-keyboard.d.ts.map +1 -0
- package/dist-lib/src/components/ui/Scheduler/hooks/use-scheduler-state.d.ts +44 -0
- package/dist-lib/src/components/ui/Scheduler/hooks/use-scheduler-state.d.ts.map +1 -0
- package/dist-lib/src/components/ui/Scheduler/index.d.ts +14 -0
- package/dist-lib/src/components/ui/Scheduler/index.d.ts.map +1 -0
- package/dist-lib/src/components/ui/Scheduler/parts/draggable-event.d.ts +30 -0
- package/dist-lib/src/components/ui/Scheduler/parts/draggable-event.d.ts.map +1 -0
- package/dist-lib/src/components/ui/Scheduler/parts/mini-month.d.ts +28 -0
- package/dist-lib/src/components/ui/Scheduler/parts/mini-month.d.ts.map +1 -0
- package/dist-lib/src/components/ui/Scheduler/parts/scheduler-event.d.ts +53 -0
- package/dist-lib/src/components/ui/Scheduler/parts/scheduler-event.d.ts.map +1 -0
- package/dist-lib/src/components/ui/Scheduler/parts/scheduler-filter-panel.d.ts +41 -0
- package/dist-lib/src/components/ui/Scheduler/parts/scheduler-filter-panel.d.ts.map +1 -0
- package/dist-lib/src/components/ui/Scheduler/parts/scheduler-toolbar.d.ts +31 -0
- package/dist-lib/src/components/ui/Scheduler/parts/scheduler-toolbar.d.ts.map +1 -0
- package/dist-lib/src/components/ui/Scheduler/scheduler.d.ts +44 -0
- package/dist-lib/src/components/ui/Scheduler/scheduler.d.ts.map +1 -0
- package/dist-lib/src/components/ui/Scheduler/scheduler.styles.d.ts +820 -0
- package/dist-lib/src/components/ui/Scheduler/scheduler.styles.d.ts.map +1 -0
- package/dist-lib/src/components/ui/Scheduler/scheduler.types.d.ts +285 -0
- package/dist-lib/src/components/ui/Scheduler/scheduler.types.d.ts.map +1 -0
- package/dist-lib/src/components/ui/Scheduler/views/list.d.ts +33 -0
- package/dist-lib/src/components/ui/Scheduler/views/list.d.ts.map +1 -0
- package/dist-lib/src/components/ui/Scheduler/views/month.d.ts +47 -0
- package/dist-lib/src/components/ui/Scheduler/views/month.d.ts.map +1 -0
- package/dist-lib/src/components/ui/Scheduler/views/time-grid.d.ts +48 -0
- package/dist-lib/src/components/ui/Scheduler/views/time-grid.d.ts.map +1 -0
- package/package.json +210 -210
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { SchedulerFilterField, SchedulerFilterModel, SchedulerView } from '../scheduler.types';
|
|
3
|
+
export type SchedulerToolbarProps = {
|
|
4
|
+
title: ReactNode;
|
|
5
|
+
view: SchedulerView;
|
|
6
|
+
onViewChange: (view: SchedulerView) => void;
|
|
7
|
+
onPrev: () => void;
|
|
8
|
+
onNext: () => void;
|
|
9
|
+
onToday: () => void;
|
|
10
|
+
searchable: boolean;
|
|
11
|
+
search: string;
|
|
12
|
+
onSearchChange: (search: string) => void;
|
|
13
|
+
filterFields?: SchedulerFilterField[];
|
|
14
|
+
filterModel: SchedulerFilterModel;
|
|
15
|
+
onClearField: (fieldId: string) => void;
|
|
16
|
+
onClearAll: () => void;
|
|
17
|
+
appliedCount: number;
|
|
18
|
+
/** Estado do painel-coluna de filtro. */
|
|
19
|
+
filterPanelOpen: boolean;
|
|
20
|
+
onToggleFilterPanel: () => void;
|
|
21
|
+
/**
|
|
22
|
+
* `false` abaixo de `lg`: a coluna extra não cabe junto de uma grade de 7
|
|
23
|
+
* dias legível, então o botão fica desabilitado com `title` explicando — em
|
|
24
|
+
* vez de abrir um painel que o CSS esconde.
|
|
25
|
+
*/
|
|
26
|
+
filterPanelAvailable: boolean;
|
|
27
|
+
toolbarActions?: ReactNode;
|
|
28
|
+
primaryAction?: ReactNode;
|
|
29
|
+
};
|
|
30
|
+
export declare function SchedulerToolbar({ title, view, onViewChange, onPrev, onNext, onToday, searchable, search, onSearchChange, filterFields, filterModel, onClearField, onClearAll, appliedCount, filterPanelOpen, onToggleFilterPanel, filterPanelAvailable, toolbarActions, primaryAction, }: SchedulerToolbarProps): import("react/jsx-runtime").JSX.Element;
|
|
31
|
+
//# sourceMappingURL=scheduler-toolbar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scheduler-toolbar.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ui/Scheduler/parts/scheduler-toolbar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAqCvC,OAAO,KAAK,EACV,oBAAoB,EACpB,oBAAoB,EACpB,aAAa,EACd,MAAM,oBAAoB,CAAC;AAqC5B,MAAM,MAAM,qBAAqB,GAAG;IAClC,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,aAAa,CAAC;IACpB,YAAY,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;IAC5C,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;IAEpB,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAEzC,YAAY,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACtC,WAAW,EAAE,oBAAoB,CAAC;IAClC,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IAErB,yCAAyC;IACzC,eAAe,EAAE,OAAO,CAAC;IACzB,mBAAmB,EAAE,MAAM,IAAI,CAAC;IAChC;;;;OAIG;IACH,oBAAoB,EAAE,OAAO,CAAC;IAE9B,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,aAAa,CAAC,EAAE,SAAS,CAAC;CAC3B,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,IAAI,EACJ,YAAY,EACZ,MAAM,EACN,MAAM,EACN,OAAO,EACP,UAAU,EACV,MAAM,EACN,cAAc,EACd,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,EACd,aAAa,GACd,EAAE,qBAAqB,2CA6MvB"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { SchedulerProps, SchedulerRef } from './scheduler.types';
|
|
2
|
+
/**
|
|
3
|
+
* `Scheduler` — calendário de eventos com 4 modos de visualização
|
|
4
|
+
* (mês · semana · dia · lista), busca, filtros declarativos e detalhe por
|
|
5
|
+
* callback.
|
|
6
|
+
*
|
|
7
|
+
* Não confundir com `Calendar` (o primitivo shadcn/react-day-picker): aquele
|
|
8
|
+
* é **seletor de data** dentro de um form; este exibe **eventos ao longo do
|
|
9
|
+
* tempo**. Nomes distintos porque as intenções são opostas.
|
|
10
|
+
*
|
|
11
|
+
* ## O componente é dumb sobre mutação
|
|
12
|
+
*
|
|
13
|
+
* `events` nunca é mutado. Mover ou redimensionar um evento emite
|
|
14
|
+
* `onEventMove`/`onEventResize` e o consumidor decide se e como aplica — mesma
|
|
15
|
+
* escolha do `onCardMove` do `Kanban`, pela mesma razão: só a tela sabe se a
|
|
16
|
+
* mudança precisa de confirmação, de otimismo ou de rollback.
|
|
17
|
+
*
|
|
18
|
+
* ## As 4 views
|
|
19
|
+
*
|
|
20
|
+
* - `month`: grade 6×7 fixa, evento multi-dia com pontas truncadas, "+N mais"
|
|
21
|
+
* em popover, `+` de criar no hover da célula.
|
|
22
|
+
* - `week` / `day`: a MESMA view (`views/time-grid.tsx`) com 7 ou 1 coluna —
|
|
23
|
+
* gutter de horas, banda de dia inteiro, lane-packing de sobreposição, linha
|
|
24
|
+
* do "agora" e faixa de hora clicável.
|
|
25
|
+
* - `list`: agenda agrupada por dia, só os dias QUE TÊM evento.
|
|
26
|
+
*
|
|
27
|
+
* ## Drag & drop e teclado
|
|
28
|
+
*
|
|
29
|
+
* **Arrastar** move o evento: no mês muda a data preservando hora e duração; em
|
|
30
|
+
* week/day combina a coluna (dia) com o `delta.y` (minutos, snapado). **A borda
|
|
31
|
+
* do bloco** redimensiona em week/day — alça separada, pra agarrar a borda não
|
|
32
|
+
* virar movimento. `@dnd-kit/core`, mesma base do `Kanban`.
|
|
33
|
+
*
|
|
34
|
+
* O dnd só liga quando há `onEventMove`/`onEventResize` conectado: arrastar e
|
|
35
|
+
* ver o evento voltar sozinho lê como bug do app, e é o que `draggable: false`
|
|
36
|
+
* por default protege. Em DEV, ligar sem handler avisa por `console.warn`.
|
|
37
|
+
*
|
|
38
|
+
* **Teclado:** cada grade é uma ÚNICA parada de `Tab` (roving tabindex) —
|
|
39
|
+
* as setas movem dentro dela, `Home`/`End` vão às pontas da linha, `Enter`
|
|
40
|
+
* cria no slot focado. Sem isso a grade do mês custava 42 `Tab` e a da semana
|
|
41
|
+
* 168.
|
|
42
|
+
*/
|
|
43
|
+
export declare const Scheduler: import('react').ForwardRefExoticComponent<SchedulerProps & import('react').RefAttributes<SchedulerRef>>;
|
|
44
|
+
//# sourceMappingURL=scheduler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/Scheduler/scheduler.tsx"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,eAAO,MAAM,SAAS,yGA2VrB,CAAC"}
|