@daxence/flexy-date-picker 1.0.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/style.css ADDED
@@ -0,0 +1 @@
1
+ @layer flexy-date-picker{.fldp-root,.fldp-root *{box-sizing:border-box}.fldp-root{--fldp-primary: #0f766e;--fldp-primary-hover: #115e59;--fldp-primary-foreground: #ffffff;--fldp-background: #f8fafc;--fldp-surface: rgba(255, 255, 255, .88);--fldp-surface-strong: rgba(255, 255, 255, .98);--fldp-foreground: #0f172a;--fldp-muted: #e6fffb;--fldp-accent-soft: rgba(15, 118, 110, .12);--fldp-muted-foreground: #64748b;--fldp-border: rgba(148, 163, 184, .28);--fldp-input-background: var(--fldp-surface);--fldp-today-color: #0f766e;--fldp-focus-ring: color-mix(in srgb, var(--fldp-primary) 24%, transparent);--fldp-gold: #C9A961;--fldp-gold-light: #E5D5A8;--fldp-minimal-stay: #E8EEF2;--fldp-no-arrival: #D4E8D4;--fldp-unavailable-bg: #F5F5F5;--fldp-border-radius: 16px;--fldp-day-border-radius: 4px;--fldp-shadow: 0 24px 64px -24px rgba(15, 23, 42, .42), 0 8px 24px -14px rgba(15, 23, 42, .24);--fldp-font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--fldp-font-size: 14px;--fldp-disabled-opacity: .38;--fldp-transition-duration: .15s;--fldp-z-index: 9999;--fldp-cell-size: 44px;position:relative;display:inline-flex;flex-direction:column;gap:12px;font-family:var(--fldp-font-family);font-size:var(--fldp-font-size);color:var(--fldp-foreground)}.fldp-root[data-inline=true]{display:flex;width:100%}.fldp-input-wrapper{display:flex;align-items:center;gap:10px;padding:12px 14px;cursor:pointer;transition:border-color var(--fldp-transition-duration) ease,box-shadow var(--fldp-transition-duration) ease,transform var(--fldp-transition-duration) ease;min-width:180px;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.fldp-input-wrapper:hover{border-color:var(--fldp-primary);transform:translateY(-1px)}.fldp-input-wrapper:focus-within{border-color:var(--fldp-primary);box-shadow:0 0 0 4px var(--fldp-focus-ring),0 12px 32px -20px #0f172a47;outline:none}.fldp-input-wrapper--open{border-color:var(--fldp-primary);box-shadow:0 0 0 4px var(--fldp-focus-ring),0 12px 32px -20px #0f172a47}.fldp-input-wrapper--disabled{opacity:var(--fldp-disabled-opacity);cursor:not-allowed;pointer-events:none}.fldp-input-content{display:inline-flex;align-items:center;gap:10px;flex:1;min-width:0}.fldp-input-value{min-width:0;display:inline-flex;align-items:center;color:var(--fldp-foreground);font-weight:560;letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fldp-input-value--placeholder{color:var(--fldp-muted-foreground);font-weight:500}.fldp-separator{color:var(--fldp-muted-foreground);flex:0 0 auto;-webkit-user-select:none;user-select:none;opacity:.8}.fldp-calendar-icon{color:var(--fldp-muted-foreground);flex:0 0 16px;width:16px;height:16px;transition:color var(--fldp-transition-duration),transform var(--fldp-transition-duration)}.fldp-input-wrapper:hover .fldp-calendar-icon,.fldp-input-wrapper--open .fldp-calendar-icon{color:var(--fldp-primary);transform:scale(1.03)}.fldp-clear-button{display:inline-flex;align-items:center;justify-content:center;flex:0 0 22px;width:22px;height:22px;border-radius:999px;background:color-mix(in srgb,var(--fldp-muted-foreground) 14%,transparent);color:var(--fldp-background);padding:0;transition:background var(--fldp-transition-duration),transform var(--fldp-transition-duration),color var(--fldp-transition-duration);line-height:1}.fldp-clear-button:hover{background:var(--fldp-primary);color:var(--fldp-primary-foreground);transform:scale(1.04)}.fldp-clear-button:focus-visible,.fldp-nav-button:focus-visible,.fldp-header-trigger:focus-visible,.fldp-header-option:focus-visible,.fldp-day:focus-visible{outline:none;box-shadow:0 0 0 4px var(--fldp-focus-ring)}.fldp-popover{position:absolute;left:0;z-index:var(--fldp-z-index);padding:18px;display:flex;align-items:flex-start;gap:24px;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);overflow:visible}.fldp-popover--bottom{top:calc(100% + 8px);bottom:auto;animation:fldp-fade-in-bottom var(--fldp-transition-duration) ease}.fldp-popover--top{bottom:calc(100% + 8px);top:auto;animation:fldp-fade-in-top var(--fldp-transition-duration) ease}.fldp-popover--inline{position:relative;top:auto;left:auto;right:auto;bottom:auto;width:100%;display:flex;margin-top:0;animation:none}.fldp-popover:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;border-radius:inherit;background:linear-gradient(135deg,rgba(255,255,255,.48),transparent 42%)}.fldp-popover--align-right{left:auto;right:0}@keyframes fldp-fade-in-bottom{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes fldp-fade-in-top{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.fldp-calendar{display:flex;flex-direction:column;gap:14px;flex:1;min-width:0;position:relative;z-index:1}.fldp-calendar-header{display:flex;align-items:center;justify-content:space-between;gap:10px;position:relative;padding:16px 8px;margin-bottom:0}.fldp-nav-button{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:0;background:transparent;color:var(--fldp-foreground);padding:0;transition:color var(--fldp-transition-duration),transform var(--fldp-transition-duration);flex-shrink:0;font-size:1.5em;cursor:pointer;-webkit-user-select:none;user-select:none}.fldp-nav-button:hover{color:var(--fldp-primary);transform:scale(1.2)}.fldp-nav-button[aria-disabled=true]{opacity:var(--fldp-disabled-opacity);cursor:not-allowed}.fldp-month-year-label{flex:1;text-align:center;font-weight:600;font-size:1em;color:var(--fldp-foreground);-webkit-user-select:none;user-select:none;text-transform:uppercase;letter-spacing:.03em}.fldp-month-year-selectors{display:flex;align-items:center;justify-content:center;gap:10px;flex:1;min-width:0}.fldp-header-field-group{position:relative;min-width:0}.fldp-header-trigger{display:inline-flex;align-items:center;gap:8px;padding:9px 13px;border-radius:999px;background:linear-gradient(180deg,color-mix(in srgb,var(--fldp-surface-strong) 92%,transparent),var(--fldp-surface));border:1px solid var(--fldp-border);color:var(--fldp-foreground);font-weight:650;font-size:.86em;letter-spacing:.01em;cursor:pointer;-webkit-user-select:none;user-select:none;box-shadow:0 1px #ffffff73 inset;transition:border-color var(--fldp-transition-duration),background var(--fldp-transition-duration),transform var(--fldp-transition-duration),box-shadow var(--fldp-transition-duration)}.fldp-header-trigger:hover,.fldp-header-trigger--open{border-color:var(--fldp-primary);background:color-mix(in srgb,var(--fldp-accent-soft) 78%,var(--fldp-surface));transform:translateY(-1px);box-shadow:0 8px 24px -18px #0f172a40}.fldp-header-trigger-label{max-width:10ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fldp-header-trigger-caret{color:var(--fldp-muted-foreground);font-size:.78em}.fldp-header-menu{position:absolute;top:calc(100% + 8px);left:0;min-width:100%;max-height:250px;overflow:auto;display:grid;gap:4px;padding:8px;border-radius:18px;background:var(--fldp-surface-strong);border:1px solid var(--fldp-border);box-shadow:var(--fldp-shadow);z-index:2}.fldp-header-menu--year{min-width:110px}.fldp-header-option{display:flex;align-items:center;justify-content:center;min-height:34px;padding:0 12px;border-radius:12px;color:var(--fldp-foreground);cursor:pointer;transition:background var(--fldp-transition-duration),color var(--fldp-transition-duration),transform var(--fldp-transition-duration)}.fldp-header-option:hover,.fldp-header-option--active{background:var(--fldp-accent-soft);color:var(--fldp-primary)}.fldp-header-option:hover{transform:translateY(-1px)}.fldp-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;padding:0 0 2px;margin-bottom:0}.fldp-weekday{display:flex;align-items:center;justify-content:center;min-height:40px;padding:10px 8px;border-radius:0;background:var(--fldp-gold);font-size:.75em;font-weight:600;color:#fff;text-transform:uppercase;letter-spacing:.05em;-webkit-user-select:none;user-select:none}.fldp-days-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px}.fldp-day{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:100%;aspect-ratio:1 / 1;height:auto;min-height:60px;border-radius:var(--fldp-day-border-radius);background:#fff;border:1px solid #d0d0d0;color:var(--fldp-foreground);font:inherit;font-size:1em;font-weight:600;cursor:pointer;padding:8px 4px;line-height:1.2;transition:background var(--fldp-transition-duration),color var(--fldp-transition-duration),transform var(--fldp-transition-duration),border-color var(--fldp-transition-duration);z-index:1;-webkit-user-select:none;user-select:none;outline:none;overflow:hidden}.fldp-day:hover:not(.fldp-day--disabled):not(.fldp-day--outside):not(.fldp-day--unavailable){background:#f5f5f5;border-color:var(--fldp-gold);transform:translateY(-1px)}.fldp-day-number{font-size:1.1em;font-weight:600;line-height:1}.fldp-day-price{font-size:.7em;font-weight:500;color:#666;line-height:1;margin-top:2px}.fldp-day--today{font-weight:700;color:var(--fldp-today-color)}.fldp-day--today .fldp-day-number{position:relative}.fldp-day--today .fldp-day-number:after{content:"";position:absolute;bottom:-6px;left:50%;transform:translate(-50%);width:4px;height:4px;border-radius:50%;background:var(--fldp-today-color)}.fldp-day--selected{background:var(--fldp-gold)!important;color:#fff!important;position:relative;z-index:2}.fldp-day--selected .fldp-day-price{color:#ffffffe6}.fldp-day--selected:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(45deg,transparent,transparent 6px,rgba(255,255,255,.2) 6px,rgba(255,255,255,.2) 12px);pointer-events:none;z-index:1}.fldp-day--selected .fldp-day-number,.fldp-day--selected .fldp-day-price{position:relative;z-index:2}.fldp-day--selected:hover{background:#b89650!important}.fldp-day--selected.fldp-day--today:after{background:var(--fldp-primary-foreground)}.fldp-day--range-start{background:var(--fldp-gold)!important;color:#fff!important;position:relative;z-index:2}.fldp-day--range-start .fldp-day-price{color:#ffffffe6}.fldp-day--range-start .fldp-day-number,.fldp-day--range-start .fldp-day-price{position:relative;z-index:2}.fldp-day--range-end{background:var(--fldp-gold)!important;color:#fff!important;position:relative;z-index:2}.fldp-day--range-end .fldp-day-price{color:#ffffffe6}.fldp-day--range-end .fldp-day-number,.fldp-day--range-end .fldp-day-price{position:relative;z-index:2}.fldp-day--range-start.fldp-day--range-end{background:var(--fldp-gold)!important}.fldp-day--in-range{background:var(--fldp-gold-light)!important;color:var(--fldp-foreground)!important}.fldp-day--hovered-range{background:var(--fldp-gold-light)!important}.fldp-day--unavailable{background:var(--fldp-unavailable-bg)!important;position:relative;cursor:not-allowed}.fldp-day--unavailable:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(45deg,transparent,transparent 5px,rgba(150,150,150,.25) 5px,rgba(150,150,150,.25) 10px);pointer-events:none;z-index:2}.fldp-day--unavailable .fldp-day-number,.fldp-day--unavailable .fldp-day-price{position:relative;z-index:3}.fldp-day--minimal-stay{background:var(--fldp-minimal-stay)!important}.fldp-day--no-arrival{background:var(--fldp-no-arrival)!important}.fldp-day--disabled,.fldp-day.fldp-day--disabled,.gl-rr-gen-range-picker-module__rangePickerContainer___Q69lW .fldp-day.fldp-day--disabled,.gl-realrate-range-picker-container .fldp-day.fldp-day--disabled{opacity:.4;cursor:not-allowed;pointer-events:none;border:none!important}.fldp-day--outside{color:var(--fldp-muted-foreground);border:none;opacity:.3;background:#fafafa!important}.fldp-time-picker{display:flex;flex-direction:column;gap:10px;width:120px;max-height:320px;min-height:0;flex-shrink:0;padding-left:16px;border-left:1px solid var(--fldp-border)}.fldp-time-title{font-size:.78em;font-weight:700;color:var(--fldp-muted-foreground);letter-spacing:.08em;text-transform:uppercase;padding-top:2px;flex-shrink:0}.fldp-time-slot-list{display:flex;flex-direction:column;gap:6px;min-height:0;overflow-y:auto;flex:1;padding-right:4px;scrollbar-width:thin;scrollbar-color:var(--fldp-border) transparent}.fldp-time-slot{display:flex;align-items:center;justify-content:center;min-height:32px;width:100%;border-radius:10px;border:1px solid var(--fldp-border);background:color-mix(in srgb,var(--fldp-surface) 80%,transparent);color:var(--fldp-foreground);font-size:.83em;font-weight:600;cursor:pointer;flex-shrink:0;transition:background var(--fldp-transition-duration),border-color var(--fldp-transition-duration),color var(--fldp-transition-duration),transform var(--fldp-transition-duration)}.fldp-time-slot:hover:not(.fldp-time-slot--disabled){border-color:var(--fldp-primary);background:var(--fldp-accent-soft);color:var(--fldp-primary);transform:translateY(-1px)}.fldp-time-slot--selected{background:var(--fldp-primary);border-color:var(--fldp-primary);color:var(--fldp-primary-foreground)}.fldp-time-slot--disabled{opacity:var(--fldp-disabled-opacity);cursor:not-allowed;pointer-events:none}.fldp-tooltip-anchor{position:relative;display:contents}.fldp-tooltip{z-index:calc(var(--fldp-z-index) + 1);background:var(--fldp-foreground);color:var(--fldp-background);font-size:.75em;padding:5px 8px;border-radius:calc(var(--fldp-border-radius) * .6);white-space:nowrap;pointer-events:none;box-shadow:0 2px 8px #0003;animation:fldp-tooltip-in .12s ease;max-width:200px}@keyframes fldp-tooltip-in{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}.fldp-clock-icon{color:var(--fldp-muted-foreground);flex:0 0 16px;width:16px;height:16px;transition:color var(--fldp-transition-duration),transform var(--fldp-transition-duration)}.fldp-input-wrapper:hover .fldp-clock-icon,.fldp-input-wrapper--open .fldp-clock-icon{color:var(--fldp-primary);transform:scale(1.05)}.fldp-input-chevron{color:var(--fldp-muted-foreground);flex:0 0 auto;margin-left:auto;transition:color var(--fldp-transition-duration),transform var(--fldp-transition-duration)}.fldp-input-chevron--open{transform:rotate(180deg);color:var(--fldp-primary)}.fldp-input-wrapper:hover .fldp-input-chevron{color:var(--fldp-primary)}.fldp-popover--time-only{min-width:140px;gap:0}.fldp-popover--time-only .fldp-time-picker{width:100%;border-left:none;padding-left:0}.fldp-popover--inline.fldp-popover--time-only .fldp-time-picker{max-height:none;width:100%}.fldp-time-empty{color:var(--fldp-muted-foreground);font-size:.82em;text-align:center;padding:8px 0;-webkit-user-select:none;user-select:none}.fldp-calendar-legend{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:16px;padding:16px 12px;margin-top:12px;border-top:1px solid var(--fldp-border);font-size:.8em}.fldp-legend-item{display:flex;align-items:center;gap:8px;-webkit-user-select:none;user-select:none}.fldp-legend-box{width:24px;height:24px;border:1px solid #d0d0d0;border-radius:3px;flex-shrink:0;position:relative;overflow:hidden}.fldp-legend-box--selected{background:var(--fldp-gold)}.fldp-legend-box--available{background:#fff}.fldp-legend-box--unavailable{background:var(--fldp-unavailable-bg)}.fldp-legend-box--unavailable:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(45deg,transparent,transparent 4px,rgba(150,150,150,.2) 4px,rgba(150,150,150,.2) 8px)}.fldp-legend-box--minimal-stay{background:var(--fldp-minimal-stay)}.fldp-legend-box--no-arrival{background:var(--fldp-no-arrival)}.fldp-legend-label{color:var(--fldp-foreground);font-size:.9em;font-style:italic}@media (max-width: 768px){.fldp-popover{flex-direction:column;max-width:100%}.fldp-calendar{width:100%}.fldp-day{min-height:50px;font-size:.9em}.fldp-day-price{font-size:.65em}.fldp-calendar-legend{gap:12px;font-size:.75em}.fldp-legend-box{width:20px;height:20px}}@media (min-width: 769px){.fldp-popover{flex-direction:row;flex-wrap:wrap}}}
@@ -0,0 +1,2 @@
1
+ export * from '../index'
2
+ export {}
package/package.json ADDED
@@ -0,0 +1,118 @@
1
+ {
2
+ "name": "@daxence/flexy-date-picker",
3
+ "version": "1.0.0",
4
+ "description": "A fully customizable React date picker with single & range selection, injectable CSS theming, tooltips, and full event support.",
5
+ "type": "module",
6
+ "main": "./dist/flexy-date-picker.umd.cjs",
7
+ "module": "./dist/flexy-date-picker.js",
8
+ "types": "./dist/types/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "import": "./dist/flexy-date-picker.js",
12
+ "require": "./dist/flexy-date-picker.umd.cjs",
13
+ "types": "./dist/types/index.d.ts"
14
+ },
15
+ "./styles": "./dist/style.css"
16
+ },
17
+ "files": [
18
+ "dist"
19
+ ],
20
+ "scripts": {
21
+ "dev": "vite",
22
+ "build": "tsc -p tsconfig.build.json && vite build",
23
+ "preview": "vite preview",
24
+ "lint": "eslint .",
25
+ "lint:fix": "eslint . --fix",
26
+ "test": "vitest run",
27
+ "test:coverage": "vitest run --coverage",
28
+ "storybook": "storybook dev -p 6006",
29
+ "build-storybook": "storybook build",
30
+ "release": "semantic-release",
31
+ "prepare": "husky",
32
+ "prepublishOnly": "npm run build"
33
+ },
34
+ "publishConfig": {
35
+ "access": "public",
36
+ "registry": "https://registry.npmjs.org/"
37
+ },
38
+ "engines": {
39
+ "node": ">=20.9.0"
40
+ },
41
+ "peerDependencies": {
42
+ "dayjs": ">=1.11.0",
43
+ "react": ">=18.0.0",
44
+ "react-dom": ">=18.0.0"
45
+ },
46
+ "devDependencies": {
47
+ "@commitlint/cli": "^21.0.2",
48
+ "@commitlint/config-conventional": "^21.0.2",
49
+ "@eslint/js": "^9.39.4",
50
+ "@semantic-release/changelog": "^6.0.3",
51
+ "@semantic-release/commit-analyzer": "^13.0.1",
52
+ "@semantic-release/git": "^10.0.1",
53
+ "@semantic-release/github": "^12.0.8",
54
+ "@semantic-release/npm": "^13.1.5",
55
+ "@storybook/addon-a11y": "^10.4.2",
56
+ "@storybook/addon-docs": "^10.4.2",
57
+ "@storybook/react": "^10.4.2",
58
+ "@storybook/react-vite": "^10.4.2",
59
+ "@testing-library/dom": "^10.4.1",
60
+ "@testing-library/jest-dom": "^6.9.1",
61
+ "@testing-library/react": "^16.3.2",
62
+ "@testing-library/user-event": "^14.6.1",
63
+ "@types/node": "^20.14.0",
64
+ "@types/react": "^19.0.0",
65
+ "@types/react-dom": "^19.0.0",
66
+ "@typescript-eslint/eslint-plugin": "^8.61.0",
67
+ "@typescript-eslint/parser": "^8.61.0",
68
+ "@vitejs/plugin-react": "^4.3.0",
69
+ "@vitest/coverage-v8": "^3.2.7",
70
+ "dayjs": "^1.11.11",
71
+ "eslint": "^9.39.4",
72
+ "eslint-config-prettier": "^10.1.8",
73
+ "eslint-plugin-import-x": "^4.16.2",
74
+ "eslint-plugin-jsx-a11y": "^6.10.2",
75
+ "eslint-plugin-react": "^7.37.5",
76
+ "eslint-plugin-react-hooks": "^7.1.1",
77
+ "eslint-plugin-unicorn": "^65.0.1",
78
+ "globals": "^17.6.0",
79
+ "husky": "^9.1.7",
80
+ "jsdom": "^29.1.1",
81
+ "lint-staged": "^16.4.0",
82
+ "react": "^19.0.0",
83
+ "react-dom": "^19.0.0",
84
+ "semantic-release": "^25.0.3",
85
+ "storybook": "^10.4.2",
86
+ "typescript": "^5.5.0",
87
+ "vite": "^5.3.0",
88
+ "vite-plugin-dts": "^4.0.0",
89
+ "vitest": "^3.2.7"
90
+ },
91
+ "dependencies": {
92
+ "@floating-ui/react": "^0.27.19"
93
+ },
94
+ "lint-staged": {
95
+ "*.{js,mjs,cjs,ts,mts,cts,jsx,tsx}": [
96
+ "eslint --fix"
97
+ ]
98
+ },
99
+ "repository": {
100
+ "type": "git",
101
+ "url": "git+https://github.com/daxence/flexy-date-picker.git"
102
+ },
103
+ "keywords": [
104
+ "react",
105
+ "datepicker",
106
+ "date-range",
107
+ "calendar",
108
+ "customizable",
109
+ "css-variables",
110
+ "dayjs"
111
+ ],
112
+ "author": "Aymane D. <https://github.com/daxence>",
113
+ "license": "MIT",
114
+ "bugs": {
115
+ "url": "https://github.com/daxence/flexy-date-picker/issues"
116
+ },
117
+ "homepage": "https://github.com/daxence/flexy-date-picker#readme"
118
+ }