@humuchen/mac-ui 0.0.1

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.
Files changed (125) hide show
  1. package/README.md +940 -0
  2. package/dist/favicon.svg +1 -0
  3. package/dist/mac-ui.cjs.js +12367 -0
  4. package/dist/mac-ui.cjs.js.map +1 -0
  5. package/dist/mac-ui.es.js +18444 -0
  6. package/dist/mac-ui.es.js.map +1 -0
  7. package/dist/mac-ui.umd.js +12367 -0
  8. package/dist/mac-ui.umd.js.map +1 -0
  9. package/dist/types/components/alert/index.d.ts +1 -0
  10. package/dist/types/components/alert/mac-alert.d.ts +38 -0
  11. package/dist/types/components/alert/mac-alert.stories.d.ts +15 -0
  12. package/dist/types/components/animation/animations.d.ts +97 -0
  13. package/dist/types/components/animation/index.d.ts +3 -0
  14. package/dist/types/components/animation/mac-animation.d.ts +67 -0
  15. package/dist/types/components/animation/mac-animation.stories.d.ts +9 -0
  16. package/dist/types/components/button/index.d.ts +1 -0
  17. package/dist/types/components/button/mac-button.d.ts +37 -0
  18. package/dist/types/components/button/mac-button.stories.d.ts +14 -0
  19. package/dist/types/components/card/index.d.ts +1 -0
  20. package/dist/types/components/card/mac-card.d.ts +38 -0
  21. package/dist/types/components/card/mac-card.stories.d.ts +14 -0
  22. package/dist/types/components/carousel/index.d.ts +1 -0
  23. package/dist/types/components/carousel/mac-carousel.d.ts +105 -0
  24. package/dist/types/components/carousel/mac-carousel.stories.d.ts +18 -0
  25. package/dist/types/components/checkbox/index.d.ts +2 -0
  26. package/dist/types/components/checkbox/mac-checkbox.d.ts +94 -0
  27. package/dist/types/components/checkbox/mac-checkbox.stories.d.ts +17 -0
  28. package/dist/types/components/config-provider/index.d.ts +1 -0
  29. package/dist/types/components/config-provider/mac-config-provider.d.ts +23 -0
  30. package/dist/types/components/config-provider/mac-config-provider.stories.d.ts +12 -0
  31. package/dist/types/components/confirm/index.d.ts +2 -0
  32. package/dist/types/components/confirm/mac-confirm.d.ts +86 -0
  33. package/dist/types/components/confirm/mac-confirm.stories.d.ts +15 -0
  34. package/dist/types/components/data-table/index.d.ts +2 -0
  35. package/dist/types/components/data-table/mac-data-table.d.ts +212 -0
  36. package/dist/types/components/data-table/mac-data-table.stories.d.ts +18 -0
  37. package/dist/types/components/date-picker/date-picker-utils.d.ts +13 -0
  38. package/dist/types/components/date-picker/index.d.ts +3 -0
  39. package/dist/types/components/date-picker/mac-date-picker.d.ts +72 -0
  40. package/dist/types/components/date-picker/mac-date-picker.stories.d.ts +28 -0
  41. package/dist/types/components/date-picker/mac-date-range-picker.d.ts +58 -0
  42. package/dist/types/components/date-picker/mac-date-range-picker.stories.d.ts +13 -0
  43. package/dist/types/components/descriptions/mac-descriptions.d.ts +99 -0
  44. package/dist/types/components/descriptions/mac-descriptions.stories.d.ts +21 -0
  45. package/dist/types/components/desktop/index.d.ts +2 -0
  46. package/dist/types/components/desktop/mac-desktop.d.ts +88 -0
  47. package/dist/types/components/desktop/mac-desktop.stories.d.ts +17 -0
  48. package/dist/types/components/desktop-icon/index.d.ts +1 -0
  49. package/dist/types/components/desktop-icon/mac-desktop-icon.d.ts +46 -0
  50. package/dist/types/components/desktop-icon/mac-desktop-icon.stories.d.ts +8 -0
  51. package/dist/types/components/dock/index.d.ts +2 -0
  52. package/dist/types/components/dock/mac-dock-item.d.ts +37 -0
  53. package/dist/types/components/dock/mac-dock.d.ts +74 -0
  54. package/dist/types/components/dock/mac-dock.stories.d.ts +13 -0
  55. package/dist/types/components/drawer/mac-drawer.d.ts +87 -0
  56. package/dist/types/components/drawer/mac-drawer.stories.d.ts +15 -0
  57. package/dist/types/components/dropdown/index.d.ts +2 -0
  58. package/dist/types/components/dropdown/mac-dropdown.d.ts +77 -0
  59. package/dist/types/components/dropdown/mac-dropdown.stories.d.ts +13 -0
  60. package/dist/types/components/dynamic-tags/index.d.ts +1 -0
  61. package/dist/types/components/dynamic-tags/mac-dynamic-tags.d.ts +64 -0
  62. package/dist/types/components/dynamic-tags/mac-dynamic-tags.stories.d.ts +16 -0
  63. package/dist/types/components/form/index.d.ts +3 -0
  64. package/dist/types/components/form/mac-form-item.d.ts +67 -0
  65. package/dist/types/components/form/mac-form.d.ts +64 -0
  66. package/dist/types/components/form/mac-form.stories.d.ts +18 -0
  67. package/dist/types/components/group-button/index.d.ts +2 -0
  68. package/dist/types/components/group-button/mac-group-button.d.ts +50 -0
  69. package/dist/types/components/group-button/mac-group-button.stories.d.ts +13 -0
  70. package/dist/types/components/infinite-scroll/index.d.ts +1 -0
  71. package/dist/types/components/infinite-scroll/mac-infinite-scroll.d.ts +57 -0
  72. package/dist/types/components/infinite-scroll/mac-infinite-scroll.stories.d.ts +11 -0
  73. package/dist/types/components/input/index.d.ts +1 -0
  74. package/dist/types/components/input/mac-input.d.ts +73 -0
  75. package/dist/types/components/input/mac-input.stories.d.ts +19 -0
  76. package/dist/types/components/input-number/index.d.ts +1 -0
  77. package/dist/types/components/input-number/mac-input-number.d.ts +81 -0
  78. package/dist/types/components/input-number/mac-input-number.stories.d.ts +18 -0
  79. package/dist/types/components/lazy-image/index.d.ts +1 -0
  80. package/dist/types/components/lazy-image/mac-lazy-image.d.ts +86 -0
  81. package/dist/types/components/lazy-image/mac-lazy-image.stories.d.ts +15 -0
  82. package/dist/types/components/menu/index.d.ts +2 -0
  83. package/dist/types/components/menu/mac-menu.d.ts +63 -0
  84. package/dist/types/components/menu/mac-menu.stories.d.ts +11 -0
  85. package/dist/types/components/modal/index.d.ts +1 -0
  86. package/dist/types/components/modal/mac-modal.d.ts +96 -0
  87. package/dist/types/components/modal/mac-modal.stories.d.ts +12 -0
  88. package/dist/types/components/number-animation/mac-number-animation.d.ts +64 -0
  89. package/dist/types/components/number-animation/mac-number-animation.stories.d.ts +15 -0
  90. package/dist/types/components/popconfirm/mac-popconfirm.d.ts +77 -0
  91. package/dist/types/components/popconfirm/mac-popconfirm.stories.d.ts +14 -0
  92. package/dist/types/components/progress/index.d.ts +1 -0
  93. package/dist/types/components/progress/mac-progress.d.ts +76 -0
  94. package/dist/types/components/progress/mac-progress.stories.d.ts +25 -0
  95. package/dist/types/components/radio/index.d.ts +2 -0
  96. package/dist/types/components/radio/mac-radio.d.ts +90 -0
  97. package/dist/types/components/radio/mac-radio.stories.d.ts +17 -0
  98. package/dist/types/components/rating/mac-rating.d.ts +56 -0
  99. package/dist/types/components/rating/mac-rating.stories.d.ts +15 -0
  100. package/dist/types/components/select/index.d.ts +1 -0
  101. package/dist/types/components/select/mac-select.d.ts +97 -0
  102. package/dist/types/components/select/mac-select.stories.d.ts +18 -0
  103. package/dist/types/components/split/index.d.ts +1 -0
  104. package/dist/types/components/split/mac-split.d.ts +69 -0
  105. package/dist/types/components/split/mac-split.stories.d.ts +13 -0
  106. package/dist/types/components/tabs/mac-tabs.d.ts +119 -0
  107. package/dist/types/components/tabs/mac-tabs.stories.d.ts +15 -0
  108. package/dist/types/components/tag/index.d.ts +1 -0
  109. package/dist/types/components/tag/mac-tag.d.ts +40 -0
  110. package/dist/types/components/tag/mac-tag.stories.d.ts +20 -0
  111. package/dist/types/components/text-ellipsis/mac-text-ellipsis.d.ts +47 -0
  112. package/dist/types/components/text-ellipsis/mac-text-ellipsis.stories.d.ts +15 -0
  113. package/dist/types/components/tree/index.d.ts +2 -0
  114. package/dist/types/components/tree/mac-tree.d.ts +79 -0
  115. package/dist/types/components/tree/mac-tree.stories.d.ts +12 -0
  116. package/dist/types/components/tree-select/index.d.ts +2 -0
  117. package/dist/types/components/tree-select/mac-tree-select.d.ts +59 -0
  118. package/dist/types/components/tree-select/mac-tree-select.stories.d.ts +19 -0
  119. package/dist/types/internal/base-element.d.ts +18 -0
  120. package/dist/types/internal/property-converters.d.ts +7 -0
  121. package/dist/types/mac-ui.d.ts +60 -0
  122. package/dist/types/styles/shared-styles.d.ts +2 -0
  123. package/dist/types/styles/theme.d.ts +11 -0
  124. package/dist/types/test/setup.d.ts +1 -0
  125. package/package.json +86 -0
@@ -0,0 +1,86 @@
1
+ import { BaseElement } from '../../internal/base-element';
2
+ export interface ConfirmOptions {
3
+ title?: string;
4
+ content?: string;
5
+ confirmText?: string;
6
+ cancelText?: string;
7
+ danger?: boolean;
8
+ showIcon?: boolean;
9
+ width?: string | number;
10
+ maskClosable?: boolean;
11
+ theme?: 'light' | 'dark';
12
+ titleAlign?: 'left' | 'center' | 'right';
13
+ showDivider?: boolean;
14
+ onOk?: () => void;
15
+ onCancel?: () => void;
16
+ }
17
+ /**
18
+ * @tag mac-confirm
19
+ * @summary 带遮罩和居中内容的 macOS 风格确认对话框。
20
+ *
21
+ * @slot - 对话框主体内容(替换 content 属性)。
22
+ * @slot footer - 自定义底部内容(替换默认按钮)。
23
+ *
24
+ * @csspart mask - 遮罩/覆盖层元素。
25
+ * @csspart container - 对话框容器。
26
+ * @csspart title - 标题文本。
27
+ * @csspart body - 主体内容区域。
28
+ * @csspart footer - 底部区域。
29
+ *
30
+ * @event mac-confirm-open - 对话框打开时触发。
31
+ * @event mac-confirm-close - 对话框关闭时触发。
32
+ * @event mac-confirm-ok - 点击确定按钮时触发。
33
+ * @event mac-confirm-cancel - 点击取消按钮时触发。
34
+ */
35
+ export declare class MacConfirm extends BaseElement {
36
+ static styles: import("lit").CSSResult[];
37
+ /** 对话框标题文本 */
38
+ title: string;
39
+ /** 对话框标题对齐方式:left | center | right */
40
+ titleAlign: 'left' | 'center' | 'right';
41
+ /** 对话框主体内容文本 */
42
+ content: string;
43
+ /** 确认按钮文本 */
44
+ confirmText: string;
45
+ /** 取消按钮文本 */
46
+ cancelText: string;
47
+ /** 确认按钮是否使用危险样式 */
48
+ danger: boolean;
49
+ /** 是否显示图标 */
50
+ showIcon: boolean;
51
+ /** 对话框宽度,例如 '420px' 或 420 */
52
+ width: string | number;
53
+ /** 对话框是否可见 */
54
+ visible: boolean;
55
+ /** 点击遮罩是否关闭对话框 */
56
+ maskClosable: boolean;
57
+ /** 是否在标题/主体和主体/底部之间显示分隔线 */
58
+ showDivider: boolean;
59
+ willUpdate(): void;
60
+ connectedCallback(): void;
61
+ disconnectedCallback(): void;
62
+ private _handleKeyDown;
63
+ private _onMaskClick;
64
+ private _onOk;
65
+ private _onCancel;
66
+ private _cancel;
67
+ /** 打开对话框 */
68
+ open(): void;
69
+ /** 关闭对话框 */
70
+ close(): void;
71
+ private _resolvedWidth;
72
+ private static _activeInstance;
73
+ /**
74
+ * 以命令式方式打开确认对话框。
75
+ * 返回一个 Promise,解析为 true(确定)或 false(取消)。
76
+ */
77
+ static open(options: ConfirmOptions): Promise<boolean>;
78
+ /** 关闭当前活动的命令式对话框 */
79
+ static close(): void;
80
+ render(): import("lit").TemplateResult<1>;
81
+ }
82
+ declare global {
83
+ interface HTMLElementTagNameMap {
84
+ 'mac-confirm': MacConfirm;
85
+ }
86
+ }
@@ -0,0 +1,15 @@
1
+ import type { Meta, StoryObj } from '@storybook/web-components';
2
+ import '../button/mac-button';
3
+ declare const meta: Meta;
4
+ export default meta;
5
+ type Story = StoryObj;
6
+ export declare const Default: Story;
7
+ export declare const Danger: Story;
8
+ export declare const NoIcon: Story;
9
+ export declare const OnlyTitle: Story;
10
+ export declare const CustomWidth: Story;
11
+ export declare const WithSlot: Story;
12
+ export declare const TitleAlignCenter: Story;
13
+ export declare const TitleAlignRight: Story;
14
+ export declare const NoDivider: Story;
15
+ export declare const ImperativeAPI: Story;
@@ -0,0 +1,2 @@
1
+ export { MacDataTable } from './mac-data-table';
2
+ export type { DataTableColumn, DataTablePagination, DataTableRowSelection, DataTableSortOrder, DataTableSortInfo, DataTableChangeDetail, DataTableSelectDetail, DataTableSortDetail, DataTableRowClickDetail, } from './mac-data-table';
@@ -0,0 +1,212 @@
1
+ import { BaseElement } from '../../internal/base-element';
2
+ export type DataTableSortOrder = 'asc' | 'desc';
3
+ /**
4
+ * 数据表格列定义
5
+ */
6
+ export interface DataTableColumn<T = any> {
7
+ /** 列唯一标识 */
8
+ key: string;
9
+ /** 列标题 */
10
+ title: string;
11
+ /** 数据字段名(缺省时取 key) */
12
+ dataIndex?: string;
13
+ /** 列宽 */
14
+ width?: string | number;
15
+ /** 对齐方式 */
16
+ align?: 'left' | 'center' | 'right';
17
+ /** 是否可排序 */
18
+ sortable?: boolean;
19
+ /** 支持的排序方向,默认 ['asc','desc'](含取消) */
20
+ sortDirections?: DataTableSortOrder[];
21
+ /** 默认排序方向 */
22
+ defaultSortOrder?: DataTableSortOrder;
23
+ /** 本地排序比较函数 */
24
+ sorter?: (a: T, b: T) => number;
25
+ /** 自定义单元格渲染 */
26
+ render?: (row: T, index: number, column: DataTableColumn<T>) => unknown;
27
+ /** 单元格内容超出省略 */
28
+ ellipsis?: boolean;
29
+ }
30
+ /**
31
+ * 分页配置
32
+ */
33
+ export interface DataTablePagination {
34
+ /** 当前页(受控) */
35
+ current?: number;
36
+ /** 每页条数(受控) */
37
+ pageSize?: number;
38
+ /** 默认当前页(非受控) */
39
+ defaultCurrent?: number;
40
+ /** 默认每页条数(非受控) */
41
+ defaultPageSize?: number;
42
+ /** 总条数(远程模式必填) */
43
+ total?: number;
44
+ /** 可选每页条数 */
45
+ pageSizeOptions?: number[];
46
+ /** 显示条数选择器 */
47
+ showSizeChanger?: boolean;
48
+ /** 显示快速跳页输入框 */
49
+ showQuickJumper?: boolean;
50
+ /** 显示总条数 */
51
+ showTotal?: boolean;
52
+ /** 简洁模式 */
53
+ simple?: boolean;
54
+ /** 禁用分页 */
55
+ disabled?: boolean;
56
+ /** 总条数文案前缀,默认「共 」 */
57
+ prefix?: string;
58
+ }
59
+ /**
60
+ * 行选择配置
61
+ */
62
+ export interface DataTableRowSelection<T = any> {
63
+ /** 选择类型,默认 checkbox */
64
+ type?: 'checkbox' | 'radio';
65
+ /** 选中行 key(受控) */
66
+ selectedRowKeys?: Array<string | number>;
67
+ /** 行复选框属性 */
68
+ getCheckboxProps?: (row: T, index: number) => {
69
+ disabled?: boolean;
70
+ };
71
+ /** 禁用全部选择 */
72
+ disabled?: boolean;
73
+ }
74
+ export interface DataTableSortInfo {
75
+ columnKey: string;
76
+ order: DataTableSortOrder;
77
+ }
78
+ /**
79
+ * mac-data-table-change 事件详情
80
+ */
81
+ export interface DataTableChangeDetail {
82
+ page: number;
83
+ pageSize: number;
84
+ sorter: DataTableSortInfo | null;
85
+ }
86
+ /**
87
+ * mac-data-table-select 事件详情
88
+ */
89
+ export interface DataTableSelectDetail<T = any> {
90
+ selectedRowKeys: Array<string | number>;
91
+ selectedRows: T[];
92
+ changedRow?: T;
93
+ changedRowKey?: string | number;
94
+ type: 'single' | 'multiple' | 'all';
95
+ }
96
+ /**
97
+ * mac-data-table-sort 事件详情
98
+ */
99
+ export interface DataTableSortDetail {
100
+ sorter: DataTableSortInfo | null;
101
+ }
102
+ /**
103
+ * mac-data-table-row-click 事件详情
104
+ */
105
+ export interface DataTableRowClickDetail<T = any> {
106
+ row: T;
107
+ index: number;
108
+ }
109
+ /**
110
+ * @tag mac-data-table
111
+ * @summary macOS 风格数据表格组件,支持可配置分页、排序与行选择。
112
+ *
113
+ * @slot title - 表格上方标题区域。
114
+ * @slot footer - 分页上方底部区域(汇总等)。
115
+ * @slot empty - 自定义空数据内容。
116
+ *
117
+ * @cssproperty --md-data-table-container-bg - 容器背景。
118
+ * @cssproperty --md-data-table-container-border - 容器边框。
119
+ * @cssproperty --md-data-table-container-radius - 容器圆角。
120
+ * @cssproperty --md-data-table-header-bg - 表头背景。
121
+ * @cssproperty --md-data-table-header-color - 表头文字颜色。
122
+ * @cssproperty --md-data-table-row-hover-bg - 行悬停背景。
123
+ * @cssproperty --md-data-table-row-selected-bg - 选中行背景。
124
+ * @cssproperty --md-data-table-cell-padding - 单元格内边距。
125
+ * @cssproperty --md-data-table-pagination-item-active-bg - 分页激活背景。
126
+ *
127
+ * @event mac-data-table-change - 分页或排序变化时触发。`detail: { page, pageSize, sorter }`
128
+ * @event mac-data-table-select - 行选择变化时触发。`detail: { selectedRowKeys, selectedRows, type }`
129
+ * @event mac-data-table-sort - 排序变化时触发。`detail: { sorter }`
130
+ * @event mac-data-table-row-click - 行点击时触发。`detail: { row, index }`
131
+ */
132
+ export declare class MacDataTable extends BaseElement {
133
+ static styles: import("lit").CSSResult[];
134
+ /** 列定义 */
135
+ columns: DataTableColumn[];
136
+ /** 数据源 */
137
+ data: any[];
138
+ /** 行 key 字段名或取值函数(缺省用索引) */
139
+ rowKey?: string | ((record: any) => string | number);
140
+ /** 行类名生成函数 */
141
+ rowClassName?: (row: any, index: number) => string;
142
+ /** 分页配置:false 关闭,true 默认开启,对象为详细配置 */
143
+ pagination: boolean | DataTablePagination;
144
+ /** 行选择配置 */
145
+ rowSelection?: DataTableRowSelection;
146
+ /** 远程模式:组件不本地分页/排序,仅触发事件由外部处理 */
147
+ remote: boolean;
148
+ /** 边框样式 */
149
+ bordered: boolean;
150
+ /** 斑马纹 */
151
+ striped: boolean;
152
+ /** 表头吸顶 */
153
+ sticky: boolean;
154
+ /** 加载中 */
155
+ loading: boolean;
156
+ /** 空数据文案 */
157
+ emptyText: string;
158
+ /** 组件尺寸 */
159
+ size?: 'sm' | 'md' | 'lg';
160
+ private _internalPage;
161
+ private _internalPageSize;
162
+ private _internalSelectedKeys;
163
+ private _sortColumn;
164
+ private _sortOrder;
165
+ private _processedData;
166
+ private _sortInitialized;
167
+ connectedCallback(): void;
168
+ willUpdate(changed: Map<string, unknown>): void;
169
+ private _initDefaults;
170
+ private get _paginationConfig();
171
+ private get _isPageControlled();
172
+ private get _isPageSizeControlled();
173
+ private get _effectivePage();
174
+ private get _effectivePageSize();
175
+ private get _effectiveTotal();
176
+ private get _pageCount();
177
+ private _clampPage;
178
+ private _computeProcessedData;
179
+ private get _displayEntries();
180
+ private get _currentSortInfo();
181
+ private _getRowKey;
182
+ private get _isSelectionControlled();
183
+ private get _selectedKeys();
184
+ private get _selectedKeySet();
185
+ private _isRowDisabled;
186
+ private _emitSelect;
187
+ private _handleRowSelect;
188
+ private _handleSelectAll;
189
+ private _handleSortClick;
190
+ private _gotoPage;
191
+ private _handleQuickJumper;
192
+ private _handleSimpleJumper;
193
+ private _handleSizeChange;
194
+ private _getPageList;
195
+ private _renderCellContent;
196
+ private _alignClass;
197
+ private _widthStyle;
198
+ render(): import("lit").TemplateResult<1>;
199
+ private _colspan;
200
+ private _renderHeader;
201
+ private _renderSelectionHeader;
202
+ private _renderTh;
203
+ private _renderRow;
204
+ private _renderSelectionCell;
205
+ private _renderTd;
206
+ private _renderPagination;
207
+ }
208
+ declare global {
209
+ interface HTMLElementTagNameMap {
210
+ 'mac-data-table': MacDataTable;
211
+ }
212
+ }
@@ -0,0 +1,18 @@
1
+ import type { Meta, StoryObj } from '@storybook/web-components';
2
+ import './mac-data-table';
3
+ declare const meta: Meta;
4
+ export default meta;
5
+ type Story = StoryObj;
6
+ export declare const Basic: Story;
7
+ export declare const PaginationConfig: Story;
8
+ export declare const NoPagination: Story;
9
+ export declare const SimplePagination: Story;
10
+ export declare const ControlledPagination: Story;
11
+ export declare const Sorting: Story;
12
+ export declare const RowSelection: Story;
13
+ export declare const RadioSelection: Story;
14
+ export declare const RemoteMode: Story;
15
+ export declare const Empty: Story;
16
+ export declare const Sizes: Story;
17
+ export declare const DarkMode: Story;
18
+ export declare const WithTitleAndFooter: Story;
@@ -0,0 +1,13 @@
1
+ export declare const pad: (n: number) => string;
2
+ export declare function fmtDate(d: Date, f: string): string;
3
+ export declare function prsDate(s: string, f: string): Date | null;
4
+ export declare function sameDay(a: Date, b: Date): boolean;
5
+ export declare function weekStart(d: Date): Date;
6
+ export declare function weekNumber(d: Date): number;
7
+ export declare function calDays(y: number, m: number): {
8
+ date: Date;
9
+ cur: boolean;
10
+ }[];
11
+ export declare const WDS: string[];
12
+ export declare const MNS: string[];
13
+ export declare const QNS: string[];
@@ -0,0 +1,3 @@
1
+ export { MacDatePicker } from './mac-date-picker';
2
+ export { MacDateRangePicker } from './mac-date-range-picker';
3
+ export type { PickerType, PanelView } from './mac-date-picker';
@@ -0,0 +1,72 @@
1
+ import { BaseElement } from '../../internal/base-element';
2
+ export type PickerType = 'date' | 'datetime' | 'year' | 'quarter' | 'week';
3
+ export type PanelView = 'day' | 'month' | 'year';
4
+ export declare class MacDatePicker extends BaseElement {
5
+ static styles: import("lit").CSSResult[];
6
+ value: string;
7
+ defaultValue: string;
8
+ format: string;
9
+ placeholder: string;
10
+ disabled: boolean;
11
+ size?: 'sm' | 'md' | 'lg';
12
+ clearable: boolean;
13
+ error: boolean;
14
+ success: boolean;
15
+ disabledDate?: (date: Date) => boolean;
16
+ type: PickerType;
17
+ panel: boolean;
18
+ showFooter: boolean;
19
+ private _open;
20
+ private _view;
21
+ private _panelView;
22
+ private _hh;
23
+ private _mm;
24
+ private _ss;
25
+ private _trigger;
26
+ private _portalEl;
27
+ private _portalId;
28
+ private _scrollHandler;
29
+ private get _ctrl();
30
+ private get _resVal();
31
+ private get _selDate();
32
+ private static _stylesInjected;
33
+ private static _injectPortalStyles;
34
+ willUpdate(): void;
35
+ connectedCallback(): void;
36
+ disconnectedCallback(): void;
37
+ private _addScrollListener;
38
+ private _removeScrollListener;
39
+ private _onDocClick;
40
+ private _toggle;
41
+ private _openPanel;
42
+ private _close;
43
+ private _createPortal;
44
+ private _removePortal;
45
+ private _syncTime;
46
+ private _emit;
47
+ private _pick;
48
+ private _pickQuarter;
49
+ private _pickYear;
50
+ private _pickMonth;
51
+ private _prev;
52
+ private _next;
53
+ private _today;
54
+ private _clear;
55
+ private _timeChange;
56
+ private _onKey;
57
+ private _renderHeader;
58
+ private _renderDays;
59
+ private _renderMonths;
60
+ private _renderYears;
61
+ private _renderQuarters;
62
+ private _renderTime;
63
+ private _renderFooter;
64
+ updated(changedProperties: Map<string, unknown>): void;
65
+ private _updatePortalContent;
66
+ render(): import("lit").TemplateResult<1>;
67
+ }
68
+ declare global {
69
+ interface HTMLElementTagNameMap {
70
+ 'mac-date-picker': MacDatePicker;
71
+ }
72
+ }
@@ -0,0 +1,28 @@
1
+ import type { Meta, StoryObj } from '@storybook/web-components';
2
+ import './mac-date-picker';
3
+ declare const meta: Meta;
4
+ export default meta;
5
+ type Story = StoryObj;
6
+ export declare const Default: Story;
7
+ export declare const WithValue: Story;
8
+ export declare const Placeholder: Story;
9
+ export declare const Disabled: Story;
10
+ export declare const Clearable: Story;
11
+ export declare const Sizes: Story;
12
+ export declare const ErrorState: Story;
13
+ export declare const SuccessState: Story;
14
+ export declare const DisabledDate: Story;
15
+ export declare const YearPicker: Story;
16
+ export declare const QuarterPicker: Story;
17
+ export declare const WeekPicker: Story;
18
+ export declare const DateTimePicker: Story;
19
+ export declare const Controlled: Story;
20
+ export declare const PanelOnly: Story;
21
+ export declare const PanelOnlyWithValue: Story;
22
+ export declare const PanelOnlyYear: Story;
23
+ export declare const PanelOnlyQuarter: Story;
24
+ export declare const PanelOnlyWeek: Story;
25
+ export declare const PanelOnlyDateTime: Story;
26
+ export declare const HideFooter: Story;
27
+ export declare const PanelOnlyHideFooter: Story;
28
+ export declare const CustomIcon: Story;
@@ -0,0 +1,58 @@
1
+ import { BaseElement } from '../../internal/base-element';
2
+ export declare class MacDateRangePicker extends BaseElement {
3
+ static styles: import("lit").CSSResult[];
4
+ value: [string, string];
5
+ defaultValue: [string, string];
6
+ format: string;
7
+ placeholder: string;
8
+ disabled: boolean;
9
+ size?: 'sm' | 'md' | 'lg';
10
+ clearable: boolean;
11
+ error: boolean;
12
+ success: boolean;
13
+ disabledDate?: (date: Date) => boolean;
14
+ private _open;
15
+ private _lView;
16
+ private _rView;
17
+ private _hoverDate?;
18
+ private _trigger;
19
+ private _portalEl;
20
+ private _portalId;
21
+ private _scrollHandler;
22
+ private get _ctrl();
23
+ private get _res();
24
+ private get _s();
25
+ private get _e();
26
+ private get _hasStart();
27
+ private get _hasEnd();
28
+ private static _stylesInjected;
29
+ private static _injectPortalStyles;
30
+ willUpdate(): void;
31
+ connectedCallback(): void;
32
+ disconnectedCallback(): void;
33
+ private _addScrollListener;
34
+ private _removeScrollListener;
35
+ private _onDoc;
36
+ private _toggle;
37
+ private _openP;
38
+ private _close;
39
+ private _createPortal;
40
+ private _removePortal;
41
+ private _updatePortalContent;
42
+ private _emit;
43
+ private _pick;
44
+ private _prevL;
45
+ private _nextL;
46
+ private _prevR;
47
+ private _nextR;
48
+ private _clear;
49
+ private _onKey;
50
+ private _renderCal;
51
+ updated(changedProperties: Map<string, unknown>): void;
52
+ render(): import("lit").TemplateResult<1>;
53
+ }
54
+ declare global {
55
+ interface HTMLElementTagNameMap {
56
+ 'mac-date-range-picker': MacDateRangePicker;
57
+ }
58
+ }
@@ -0,0 +1,13 @@
1
+ import type { Meta, StoryObj } from '@storybook/web-components';
2
+ import './mac-date-range-picker';
3
+ declare const meta: Meta;
4
+ export default meta;
5
+ type Story = StoryObj;
6
+ export declare const Default: Story;
7
+ export declare const WithValue: Story;
8
+ export declare const Disabled: Story;
9
+ export declare const Clearable: Story;
10
+ export declare const Sizes: Story;
11
+ export declare const ErrorState: Story;
12
+ export declare const DisabledDate: Story;
13
+ export declare const Controlled: Story;
@@ -0,0 +1,99 @@
1
+ import { BaseElement } from '../../internal/base-element';
2
+ export interface DescriptionItem {
3
+ label: string;
4
+ value: string;
5
+ span?: number;
6
+ labelStyle?: string;
7
+ contentStyle?: string;
8
+ }
9
+ /**
10
+ * @tag mac-descriptions
11
+ * @summary A macOS-style descriptions list component for displaying key-value pairs.
12
+ *
13
+ * @slot - Default slot for mac-description-item elements.
14
+ * @slot title - Custom title content.
15
+ * @slot extra - Extra content in the header (e.g. actions).
16
+ *
17
+ * @cssproperty --md-descriptions-container-bg - Container background.
18
+ * @cssproperty --md-descriptions-container-border - Container border color.
19
+ * @cssproperty --md-descriptions-container-radius - Container border radius.
20
+ * @cssproperty --md-descriptions-container-shadow - Container shadow.
21
+ * @cssproperty --md-descriptions-header-padding - Header padding.
22
+ * @cssproperty --md-descriptions-header-border - Header bottom border.
23
+ * @cssproperty --md-descriptions-title-font-size - Title font size.
24
+ * @cssproperty --md-descriptions-title-color - Title text color.
25
+ * @cssproperty --md-descriptions-label-color - Label text color.
26
+ * @cssproperty --md-descriptions-label-bg - Label background.
27
+ * @cssproperty --md-descriptions-label-width - Label width (left placement).
28
+ * @cssproperty --md-descriptions-value-color - Value text color.
29
+ * @cssproperty --md-descriptions-value-bg - Value background.
30
+ * @cssproperty --md-descriptions-row-border - Row separator border.
31
+ * @cssproperty --md-descriptions-cell-padding - Cell padding.
32
+ * @cssproperty --md-descriptions-separator-color - Separator color.
33
+ */
34
+ export declare class MacDescriptions extends BaseElement {
35
+ static styles: import("lit").CSSResult[];
36
+ /** Label placement: 'left' shows label beside value, 'top' shows label above value */
37
+ labelPlacement: 'left' | 'top';
38
+ /** Label text alignment */
39
+ labelAlign: 'left' | 'center' | 'right';
40
+ /** Number of columns per row */
41
+ column: number;
42
+ /** Component size */
43
+ size?: 'sm' | 'md' | 'lg';
44
+ /** Whether to show bordered style */
45
+ bordered: boolean;
46
+ /** Title text */
47
+ title: string;
48
+ /** Separator between label and value (only for label-placement='left' and not bordered) */
49
+ separator: string;
50
+ /** Data items (alternative to slot) */
51
+ items: DescriptionItem[];
52
+ willUpdate(): void;
53
+ private _getItems;
54
+ private _renderHeader;
55
+ /**
56
+ * Build rows from items respecting column count and span.
57
+ * Each row is an array of { item, effectiveSpan }.
58
+ */
59
+ private _buildRows;
60
+ /** label-placement: left + bordered → table with label | value columns */
61
+ private _renderLeftBordered;
62
+ /** label-placement: left + not bordered → inline label: value list */
63
+ private _renderLeftNonBordered;
64
+ /** label-placement: top + bordered → table with label row above value row */
65
+ private _renderTopBordered;
66
+ /** label-placement: top + not bordered → grid with label above value */
67
+ private _renderTopNonBordered;
68
+ render(): import("lit").TemplateResult<1>;
69
+ }
70
+ /**
71
+ * @tag mac-description-item
72
+ * @summary A child item for mac-descriptions (used in slot mode).
73
+ *
74
+ * @property label - Label text
75
+ * @property value - Value text (alternative to text content)
76
+ * @property span - Number of columns this item spans
77
+ * @property label-style - Custom CSS style for the label
78
+ * @property content-style - Custom CSS style for the content
79
+ */
80
+ export declare class MacDescriptionItem extends BaseElement {
81
+ static styles: import("lit").CSSResult[];
82
+ /** Label text */
83
+ label: string;
84
+ /** Value text (alternative to text content) */
85
+ value: string;
86
+ /** Number of columns this item spans */
87
+ span: number;
88
+ /** Custom CSS style for the label */
89
+ labelStyle: string;
90
+ /** Custom CSS style for the content */
91
+ contentStyle: string;
92
+ render(): import("lit").TemplateResult<1>;
93
+ }
94
+ declare global {
95
+ interface HTMLElementTagNameMap {
96
+ 'mac-descriptions': MacDescriptions;
97
+ 'mac-description-item': MacDescriptionItem;
98
+ }
99
+ }
@@ -0,0 +1,21 @@
1
+ import type { Meta, StoryObj } from '@storybook/web-components';
2
+ import './mac-descriptions';
3
+ declare const meta: Meta;
4
+ export default meta;
5
+ type Story = StoryObj;
6
+ export declare const Basic: Story;
7
+ export declare const WithTitle: Story;
8
+ export declare const WithExtra: Story;
9
+ export declare const LabelPlacementTop: Story;
10
+ export declare const LabelPlacementTopBordered: Story;
11
+ export declare const Bordered: Story;
12
+ export declare const LabelAlign: Story;
13
+ export declare const Separator: Story;
14
+ export declare const SmallSize: Story;
15
+ export declare const LargeSize: Story;
16
+ export declare const TwoColumns: Story;
17
+ export declare const Span: Story;
18
+ export declare const SlotMode: Story;
19
+ export declare const ItemStyle: Story;
20
+ export declare const AllSizesBordered: Story;
21
+ export declare const AllSizesTopPlacement: Story;
@@ -0,0 +1,2 @@
1
+ export { MacDesktop } from './mac-desktop';
2
+ export type { DesktopIconData } from './mac-desktop';